有一个做外贸的朋友发来求助,用 lnmp1.4 安装了 php 环境后,添加了自带的Let’s Encrypt 证书,结果打开域名却看到了 COMODO ECC Domain Validation Secure Server CA 2 这个证书,而且还是一会跳转 https,一会不跳转的,给他搞的很郁闷。
一开始魏艾斯博客也是一头雾水,重新安装了一遍 lnmp1.4,并按照官方教程添加了虚拟主机和 SSL,最后得到的结果还是老样子。后来无意中问了一句:你用的什么 ns 服务,回答说cloudflare,于是老魏就上去看了一下,找到了 overview 栏目中的 SSL 显示为 Flexible,然后去网上搜索了一下得知 cloudflare 近年来默认开启了免费 SSL 证书,只要用他的 NS 服务就给你加上了。原来问题出在这里,NS 服务这里加上了别的 SSL 证书,VPS 服务器那里的证书自然就不显示了。这会导致域名显示的是 cloudflare 默认证书,而不显示 Let’s Encrypt 证书。
关于网站打不开,就涉及到 cloudflare 的 SSL 总共四种模式:off、Flexible SSL、Full SSL、Full SSL (strict)、Strict (SSL-Only Origin Pull)。含义解释如下:
off:关闭 SSL 证书Flexible SSL:网站访问者和 Cloudflare 之间有加密连接,但是从 Cloudflare 到服务器没有加密。即半程加密。优点在于:网站不需要 SSL 证书,用户也能实现 SSL 加密访问。Full SSL:全程加密,即从网站到 CDN 服务器再到用户,全程都是 SSL 加密的。优点在于:只要服务器有 SSL 证书(不管是自签名证书还是购买的 SSL),就可以实现 SSL 加密访问。Full SSL (strict):全程加密,它与 Full SSL 的区别在于服务器必须是安装了那些已经受信任的 SSL 证书(即购买的 SSL 证书),否则无法开启 SSL 加密访问。
解决办法是在 cloudflare 的 CRYPTO 里面,SSL 状态选择 full,后续 VPS 端正常配置网站。cloudflare 提供的免费证书还提供免费 6 个月的有效期,先这么用着,等到期了看情况再说。另外 cloudflare 最近对国内联通线路经常打不开,站长使用前应该考虑这一点。
如果你不想用 cloudflare 的免费证书,那么就只好不用 cloudflare 的 NS 服务,从你的域名注册商那里直接解析 A 记录到 VPS 服务器,然后安装 Let’s Encrypt 证书就可以。
解释三个问题:
1、为什么这位做外贸的朋友一定要使用 cloudflare 做 NS 服务器。外贸网站面向全球访客,使用 cloudflare 这种 CDN 加速网站可以提高各地的网站打开速度,就好像在国内我们做站都使用各种 CDN 加速网站提速一样的道理。
2、为什么外贸网站要使用 https 这种 SSL 加密访问方式。外贸网站面对的搜索引擎是谷歌。Google 一直推动网站从 HTTP 切换到 HTTPS。2014 年 8 月,Google 将 HTTPS 正式作为排名因素之一。HTTPS 网站被认为是安全的网站,将会比 HTTP 的网站在排名上获得小幅优势。而在过去的几年中,谷歌对于 HTTPS 网站的网页抓取收录也在明显上升。从 2017 年起,未经 https 加密的网页会遭到 Chrome 的安全警告,谷歌 Chrome 浏览器会把采用 HTTP 协议的网站标记为“不安全”网站。由此得到的结论:HTTPS 是大势所趋,不管是 B2C 还是 B2B 网站、企业网站,启用 HTTPS 益处多多。
3、为什么魏艾斯博客不使用 https。魏艾斯博客放在国内,面对国内访客,主要搜索引擎是百度。站长们都知道百度站长工具,虽然百度宣称自己完全支持 https,但是从百度站长工具后台可以看到,全站 https 的网站还要手动向百度提交一次,才能获得对应的抓取,并不承诺会百分百收录及放出来。由此可见百度在 https 这方面的支持“还有很大提升空间”。