说说 SSL 的错误认识和不足之处
最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站,近一周的折腾下来,收获真的不少,致使兴趣也越来越浓了,在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速模块,感觉很不错,大家可以移步围观一下【明月学习笔记 Blog』。
没有想到在 VPS 上部署 SSL 竟然是个分分钟就搞定的事儿,通过几行指令就可以直接在线获取免费 Let's Encrypt 证书了,对 Nginx 主机配置文件稍作修改即可以了。快的有点儿让明月以外了,嘿嘿。因为是个新站,所以小绿锁标志很快就在 Chrome 浏览器地址栏里出现了。我这也算是一次少有的跟风了。
明月发现很多博客站长们都 SSL 的认识有不小的误区,借着这次明月自身的体验我们几天就说说 SSL 的错误认识以及存在的不足之处,以便博客站长们更好的选择取舍。
什么是 SSL?
SSL 是 SecuritySocketLayer 的缩写,技术上称为安全套接字,可以简称为加密通讯协议,使用 SSL 可以对通讯内容进行高强度的加密,以防止黑客监听您的通讯内容甚至是用户密码。
谷歌对 SSL 加密的描述
谷歌:与不加密的网络连接相比,使用 SSL 技术可提供更高的隐私性和安全性。它可降低信息被第三方拦截或滥用的风险。许多网站访问者在得知自己正在使用 SSL 连接后会更愿意提供付款信息以及其他个人信息。
实际上,谷歌对 SSL 的支持是显而易见的。就按照远方的海自己的例子,加上了 SSL 之后,谷歌的访问数目陡然上升了不少。如果你的网站主要是面对谷歌和海外用户,那么绝对不需要犹豫了,SSL 是你的归宿!
而且 SSL 会保障网站的安全。比如,网站很多关键词出现敏感词,没有 SSL 的网站估计就难逃其咎了。之前 V2EX 因为敏感词被封,SSL 端口依然还是可以访问。这个例子就证明了 SSL 的好处。
至于说百度对 SSL,明月认为百度这方面主要还是表现在“口头”上的,就照明月目前的体验,百度对 SSL 站点的收录和权重分配并没有“口头”上说的那么好,所以大家不要相信 SSL 可以提升收录速度、收录量、权重这些,做好“内容增益”才是当前主要工作可参考【原创的“真谛”其实是内容增益!』。

一些对 SSL 错误的看法
客观的说 SSL 是会影响部分加载速度,但是绝对不是让你的网站一下就拖慢了。除非你是洁癖的“处女座”。
看法 1:SSL 会拖慢访问速度吗?
真相 1:SSL 实际上会比普通的 HTTP80 端口的访问多了一次 HTTPS 握手的时间(SSLHandshakeTime),这个握手时间其实相对于网页加载时间是很缓慢的。网页加载的时候,HTTP 需要 3 次 TCP 握手链接;而 HTTPS 则需要 12 次握手链接,较之 HTTP 多了 9 次。所以在建立链接的时候,多出了一些 HTTPS 加密解密的时间。实际上这个时间基本在 0.2 秒之内,你说算不算是拖慢速度呢?
看法 2:SSL 占服务器资源吗?
真相 2:我们用数据说话。只有足够大的流量和数据才具有可靠的真实性。那么 Gmail 的例子可以说是全球范围内,最有参考价值的例子之一了。
2010 年 1 月 Gmail 切换到完全使用 https,前端处理 SSL 机器的 CPU 负荷增加不超过 1%,每个连接的内存消耗少于 20KB,网络流量增加少于 2%。由于 Gmail 应该是使用 N 台服务器分布式处理,所以 CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。
[ad]
那么 SSL 既然这么的好,为啥当今互联网上的普及率并不是很高呢?或者说就国内目前的互联网环境来说 SSL 好像并不是网站“标配”,或许下面的这些原因很能说明这个问题:
- SSL 证书需要钱。功能越强大的证书费用越高。个人网站、小网站没有必要一般不会用。
- SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名。IPv4 资源不可能支撑这个消耗。(SSL 有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持。WindowsXP 就不支持这个扩展,考虑到 XP 的装机量,这个特性几乎没用。)
- HTTPS 连接缓存不如 HTTP 高效,大流量网站如非必要也不会采用。流量成本太高。
- HTTPS 连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本。如果全部采用 HTTPS,基于大部分计算资源闲置的假设的 VPS 的平均成本会上去。
- HTTPS 协议握手阶段比较费时,对网站的相应速度有负面影响。如非必要,没有理由牺牲用户体验。
- 最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家(咳咳,你们懂的)可以控制 CA 根证书的情况下,中间人攻击一样可行。
另外,在客户端被植入无数后门、木马的状况下,HTTPS 连接的作用非常有限。这也许是支付宝不可能像 PayPal 那么易用的原因之一。
明月目前的博客和主站都没有启用 SSL 在上述的不足里都提到了,所以对于是否使用 SSL 还是要理智的来分析是不是自己真正需要的,SSL 对前端的用户来说真心没有太大的作用,所谓的“安全性”也绝不是“宣传”的那么毋庸置疑,明月自己感觉如果博客网站上有“在线支付”功能的,SSL 才是“标配”的,像明月这样的主要是“内容分享”的好像真的是很“鸡肋”的,毕竟费用、效率是我不得不主要面对和考虑的问题。
相关文章:
说说 SSL 的错误认识和不足之处
最近明月在学习折腾 LNMP 期间无意中建了一个 Typecho 的博客小站,近一周的折腾下来,收获真的不少,致使兴趣也越来越浓了,在升级 LNMP 的时候捎带手的给这个 Typecho 博客也启用了 SSL。并且开启了 memcached 和 OPcache 优化加速…...
Go语言day1
下载go语言的安装程序: All releases - The Go Programming Language 配置go语言的环境变量: 写第一个go语言 在E:\go_workspace当前窗口使用cmd命令: 输入 go run test.go...
【Python机器学习】利用t-SNE进行流形学习
虽然PCA通常是用于变换数据的首选方法,使你能够用散点图将其可视化,但这一方法的性质限制了其有效性。 有一类用于可视化的算法叫做流形学习算法,它允许进行更复杂的映射,通常也可以给出更好的可视化。其中特别有用的一个就是t-S…...
03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)
03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord) 0. 引言1. m_proj使用方法2. 结语 0. 引言 上一篇介绍了m_proj函数用于初始化投影,本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系,地理/地磁坐标系和投影…...
UEC++ 虚幻5第三人称射击游戏(一)
UEC 虚幻5第三人称射击游戏(一) 创建一个空白的C工程 人物角色基本移动 创建一个Character类添加一些虚幻商城中的基础动画 给角色类添加Camera与SPringArm组件 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category "SpringArm")clas…...
java小代码(1)
代码 : 今日总结到此结束,拜拜!...
SLAM ORB-SLAM2(27)词袋模型
SLAM ORB-SLAM2(27)词袋模型 1. 词袋模型1.1. 词汇树1.2. 逆向索引表1.3. 逆向索引表2. 词袋向量3. 匹配候选帧3.1. 找出和当前帧具有公共单词的所有关键帧3.2. 找出和当前帧最多公共单词的关键帧3.3. 剔除共享单词数较少的关键帧3.4. 计算关键帧的共视关键帧组的总得分3.5. …...
OpenAI 的 GPT-5:CTO米拉-穆拉提说,到 2026 年将实现博士级智能(Ph.D.-Level))
据首席技术官米拉-穆拉提(Mira Murati)介绍,GPT-5 是 OpenAI 人工智能的下一代进化产品,将于 2025 年底或 2026 年初在特定任务中实现博士级智能。 GPT-5 内部代号为 "Gobi "和 “Arrakis”,将是一个多模态…...
macbook配置adb环境和用adb操作安卓手机
(参考:ADB工具包的安装与使用_adb工具箱-CSDN博客) 第一步:从Android开发者网站下载Android SDK(软件开发工具包)。下载地址为: 第二步:解压下载的SDK压缩文件到某个目录中。 进入解…...
微软TTS最新模型,发布9种更真实的AI语音
很高兴与大家分享 Azure AI 语音翻译产品套件的两个重大更新: 视频翻译和增强的实时语音翻译 API。 视频翻译(批量) 今天,我们宣布推出视频翻译预览版,这是一项突破性的服务,旨在改变企业本地化视频内容…...
python爬虫 -爬取 json 格式数据
在Python中,爬取JSON格式的数据通常涉及到发送 HTTP请求到某个URL,并解析返回的JSON数据。以下是一个简单的示例,说明如何使用Python的requests库来爬取JSON格式的数据: 1. 首先,确保你已经安装了requests库。如果没…...
Pytorch(5)-----梯度计算
一、问题 如何使用Pytorch计算样本张量的基本梯度呢?考虑一个样本数据集,且有两个展示变量,在给定初始权重的基础上,如何在每次迭代中计算梯度呢? 二、如何运行 假设有x_data 和 y_data 列表,计算两个列表需…...
C#的膨胀之路:创新还是灭亡
开篇概述 C#,这门由微软推出的编程语言,自2000年诞生以来,以其简洁的语法、强大的功能和广泛的应用场景,赢得了我等程序员的热爱。它在.NET框架的加持下,展现出无与伦比的开发效率和性能。然而,随着时间的流…...
SpringBoot 过滤器和拦截器的区别
SpringBoot 过滤器和拦截器的区别 Spring拦截器(Interceptor)和过滤器(Filter)是Spring框架中用于处理请求的两种机制,虽然它们都可以在请求处理的不同阶段进行拦截和处理,但它们的工作原理和应用场景有所…...
协程执行顺序引发的问题
引言 在Golang中,因为协程执行的顺序是不固定的,如果不在代码里进行控制,可能就会导致预期外的输出。 本文通过分析一段代码的执行来介绍这种情况,以及可行的控制协程执行顺序的方法: sleep()waitGroup 实例分析 代…...
android webview调用js滚动到指定位置
一、activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.tencent.smtt.sdk.WebView import com.tencent.smtt.sdk.WebViewClientclass MainActivity : AppCompatActivity() {private lateinit var webView: WebViewoverride fun …...
WPF 深入理解一、基础知识介绍
基础知识 本系列文章是对个人 B站 up 微软系列技术教程 记录 视频地址 https://www.bilibili.com/video/BV1HC4y1b76v/?spm_id_from333.999.0.0&vd_source0748f94a553c71a2b0125078697617e3 winform 与 wpf 异同 1.winform 项目结构 编辑主要是在 Form1.cs(页面)&#…...
腾讯云点播ugc upload | lack signature 问题处理
我犯一个很傻的错误 参考腾讯云官方文档:云点播 Web 端上传 SDK-开发指南-文档中心-腾讯云 进行开发,但是却报错了,始终找不到问题,错误提示:ugc upload | lack signature,意思是缺少签名或者签名失败&…...
计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )
目录 一、实验内容 二、实验目的 三、实验步骤 四、实验结果截图 五、实验完整代码 六、报错及解决方案 PS:实验的运行速度受电脑性能影响,如遇运行卡顿请耐心等待。 一、实验内容 编程实现基于支持向量机的人脸识别分类,基本功能包括:Labeled Faces in th…...
5.什么是C语言
什么是 C 语言? C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点 非常接近自然语言程序的执行效率非常高 C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的, 例如:C、C#、Object-C、…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
