为高权重的域名配置HTTPS的时候, 要遵循以下三个核心原则。第一, 证书的等级必须与域名的信任度相互匹配。第二, 传输层所使用的协议不低于TLS 1.2这个标准。
第三, 进行全站的301重定向操作, 以此来确保权重能够无损耗地进行迁移。下面我们将按照具体的操作顺序, 一步一步来进行说明。这里我们使用老域名 gname.xin 作为示例。
证书选型与申请
针对高权重的域名, 比如说百度的PR值达到4级以上, 或者是Ahrefs的DR值达到60级以上, 又或者是连续使用了五年以上的这种域名而言, 我们建议你优先去选择OV即企业型证书, 或者EV即增强型证书, 这些证书应该由DigiCert、GlobalSign或是Sectigo这样的一些CA机构来负责签发, 同时需要避免去使用Let's Encrypt这个免费证书, 因为它对应的域名是没有品牌背书的这一情况存在的, 并且这也和当前的高权重域名所拥有的信任资产完全不匹配。
在去进行申请这个动作的时候, 必须要把企业方面的主体相关信息,填写得全面且完整。当证书和域名完成了绑定工作之后高权重域名HTTPS配置指南, 它的有效期通常为一年时间。
如果到了快要过期的时候, 必须在距离到期日还有30天的这一个时间段内, 去把续签的这件事情完成掉。
服务器端配置
拿 Nginx 作为例子来说, 在 /etc/nginx/conf.d/ 这个目录下面, 去编辑对应的那个站点的配置文件。
启用对443端口的监听, 并开启与安全套接层协议以及超文本传输协议版本二的关联。
ssl_certificate 与 ssl_certificate_key 分别指向证书与私钥路径;
ssl_protocols TLSv1.2 TLSv1.3; 禁用TLS 1.0/1.1;
这里对ssl_ciphers进行了严格限制,仅将其设定为高安全的密码套件高权重域名HTTPS配置指南, 比如说是ECDHE-RSA-AES256-GCM-SHA384这些类型。
ssl_stapling on; 这行代码的作用就是开启 OCSP 装订这个功能, 这样做的话, 是可以帮助降低那个在握手过程中产生的延迟现象的。
Apache的运行环境, 则是在 httpd-ssl.conf 这个配置文件里面, 去设置那些对应的参数, 然后需要执行 apachectl restart 这个操作, 才能让这些配置真正生效。
在完成了全部的配置工作之后, 你需要马上运行 nginx -t 这个指令, 或者选择使用 httpd -t 这个工具去对语法内容进行校验操作。你要非常确定屏幕上没有出现任何报错的情况出现, 然后才可以去执行后续的服务重载动作。
DNS与301重定向
把域名的A记录指向新的IP地址, 或者也保持原来的IP地址不发生变化, 然后再去添加CAA记录来限定那些可以颁发证书的受信任的CA机构。然后就到Nginx的80端口所在的那个location配置块里面去写入相关的配置内容。
return 301 https://$host$request_uri;
对于像 http://gname.xin 这样高权重的域名, 必须要同步执行以下操作。也就是说, 要把 http://www.gname.xin 通过301跳转到目标地址。同时, 也要把 http://gname.xin 通过301跳转到同样的目标地址。
最终的目标地址是 https://gname.xin。这么做是为了避免权重出现分散的情况。在重定向规则成功上线之后, 请使用 curl -I 这个命令来进行确认, 并且必须要保证返回的状态码是数字301, 而不是数字302。
验证与上线
1. 访问 https://gname.xin, 你应当在浏览器地址栏看到锁形图标呈现出来, 并且不应该出现“不安全”这样的警告提示。
2. 我们得去那个叫SSL Labs的网站上弄一下, 也就是testssl.net的那个网站, 把扫描给执行了, 然后让目标拿到的评级是A或者是比A更高的级别。
3. 请登录百度站长平台, 同时也要登录Google Search Console, 把HTTPS版本设置成为首选协议, 然后提交sitemap。
4. 我们要去看一看在最近的48个小时里面, 搜索引擎的收录情况还有爬虫抓取的日志是什么样子的, 必须要确认那些错误代码里面是不存在像4xx或者5xx这样的异常情况的。
避坑要点
证书链是必须包含中间CA证书的, 要是缺失了的话, 那就会导致部分浏览器报错。
要把全站范围内的所有HTTP资源, 包括图片还有脚本在内的东西, 必须给全部更换成HTTPS协议的链接呀, 这样做是为了把混合内容带来的警告给彻底杜绝掉。
关于HSTS这个响应头, 我们建议把它设置成max-age=31536000; includeSubDomains的形式。这样做的目的, 主要就是为了防止出现那种降级攻击的情况。
如果域名是在多个不同的CDN节点上面进行分发的话, 那么就必须在每一层的具体节点上都完成证书的相应配置工作, 这样就可以防止因为某一层的节点上面的证书出现了过期的状况, 而导致整个链条出现中断的风险。



