高权重的域名上线HTTPS,核心原则只有一条高权重域名HTTPS配置指南, 就是必须用301永久重定向, 把全部HTTP请求跳转至HTTPS, 证书链要完整, 而且页面上不能有任何混合内容。任何一步出现缺失的情况, 都会导致搜索引擎在权重迁移的周期内产生波动。下面以gname.xin为例, 给出完整的配置流程。

配置前准备

请先确认三项前置条件。第一项是域名DNS已解析, A记录及CAA记录指向目标服务器IP。第二项是服务器安装OpenSSL 1.1.1及以上版本。第三项是已获取Let's Encrypt或企业CA签发的证书文件, 证书文件包括fullchain.pem与privkey.pem。

如果像gname.xin这样的域名已经有了比较高的权重值, 那就建议先把现在的全部已经收录的网址清单导出来, 作为后面去做301跳转比对的依据和标准。

步骤一:安装与加载证书

邢台市重点项目建设促进中心

你应该把证书还有私钥这两个材料都放在服务器那边的具体指定的那个文件夹里面去,然后高权重域名HTTPS配置指南, 再去把这个文件的属性给改成600这种权限的样子出来。

就拿Nginx来做例子, 你要在HTTPS的那个server配置块里面去搞一搞, 把那个ssl_certificate这个选项给它指到fullchain.pem这个地方去, 然后, 再把那个ssl_certificate_key也给设定好, 就是让它指向privkey.pem, 除此之外, 还得把这个TLS版本给提起来, 就是说要把这个低版本的TLS给它关掉, 把高版本的TLS给它开启上, 具体来说, 就是要让这个服务器能够支持那个TLS 1.2这个版本, 也要能支持那个TLS 1.3这个版本, 但是, 对于那些旧的、不太安全的版本, 像这个TLS 1.0, 还有那个TLS 1.1, 就要非常明确地把它们给禁止掉。

步骤二:HTTP强制301跳转

增加对80端口的监听服务块, 在该服务块内部写入一条规则, 即return 301 https://$host$request_uri。一定要使用$host变量, 而不使用硬编码的域名, 这样多域名场景下就能自动适配, 跳转规则有且仅有一条, 如果写多条冲突的规则, 就会造成重定向循环。

步骤三:添加HSTS响应头

高权重域名配置HTTPS全攻略:3步操作+避坑要点,不丢权重(图1)

在HTTPS server块中追加Strict-Transport-Security: max-age=31536000, includeSubDomains, preload。

首次部署的时候, 建议大家先把max-age设为86400, 也就是1天。观察没有任何异常的话, 再将其调整为一年。HSTS一旦下发, 浏览器在有效期内无法回退到HTTP。

301映射与权重保留

高权重域名这个事情, 最关键的环节是什么, 就是要为每一个原本的HTTP页面, 去建立那个和HTTPS页面一一对应的301映射规则。如果你的站点里面存在自定义路径的情况, 那么就需要在Nginx这个环境里, 补充那些关于location级别的301规则。

就拿gname.xin来说, 如果它同时存在www和非www两个版本的话, 那就必须去选定一个唯一的主版本, 然后把另一个版本做成301归并操作, 这样做的目的就是要防止权重的分散现象发生。

部署后验证与高频避坑

依次执行三项检查: 在第一步之中, 于浏览器地址栏内确认锁形图标, 点击查看证书有效期与颁发机构;在第二步之中, 执行 curl -I https://gname.xin 命令, 确认返回200且TLS握手版本为1.2或1.3;在第三步之中, 将新HTTPS地址提交至搜索引擎资源平台(Google Search Console、百度站长平台), 申请重新抓取。

大家经常容易踩到的坑主要包括这几个情况, 一个是证书的有效期到了但是没有人去续期, 第二个是在页面的内容里面还存在使用http://协议来引用资源的现象, 这就导致了混合内容的问题, 第三个原因是服务器的防火墙没有把443这个端口给放行, 第四个是因为HSTS配错了之后在比较短的时间内没有办法撤回去。

收尾确认

在全部配置已经完成之后, 使用SSL Labs这个在线扫描工具去做一次完整的检测工作, 只要评分达到A+这个水平, 就被视为是通过了。

对于高权重的域名而言, 需要进行HTTPS的迁移工作, 这需要在大约两周时间这样的一个抓取周期内, 把所有的URL的301转发都生效完成, 在这个期间里, 需要避免同时去更换DNS以及修改canonical标签这样的额外操作, 以便把权重发生的波动范围控制在最小的程度里面。