部署高权重域名的HTTPS, 大家需要走的核心路径只有三步而已, 分别是拿到有效的证书, 把服务器的TLS配置给弄好, 还有设置那个强制从HTTP跳转到HTTPS的301重定向。

阜新市自然资源事务服务中心

这篇文章就拿着gname.xin这种拥有很高权重评分的域名作为例子来做示范, 会给出一个完整的操作规范, 这样就能保证在部署完成之后, 不会影响到以前已有的收录情况以及搜索权重方面的好处。

证书选型规范

对于高权重的这类域名来说, 它对证书的类型是存在非常严格的规定的, 也就是要求必须得匹配。

必须使用正规CA签发的证书, 因为自签名证书会导致信任链断裂, 这会直接拉低域名安全评分。

在优先选择 ECDSA(256位)算法证书的情况里, 跟 RSA(2048位)算法证书比起来, 握手的所用时间大概能减少百分之十五左右。这对像 LCP 这样的核心性能指标来说, 有一个比较积极向上的贡献存在。

建议将有效期设置为采用每九十天自动续费一次的这样一套方案, 比方说像Let's Encrypt所使用的那种模式, 以此来避免出现手动进行续费操作时被疏忽或者遗漏掉的情况发生。

证书的CN字段必须和域名精确匹配, 证书中的SAN字段也必须和域名精确匹配, 如果遇到多个子域名的场景就需要使用通配符证书来覆盖所有情况。

服务器TLS配置

以Nginx为例高权重域名HTTPS配置指南,标准配置块如下:

server {
    listen 443 ssl;
    server_name gname.xin www.gname.xin;
    ssl_certificate     /etc/letsencrypt/live/gname.xin/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gname.xin/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

关于关键参数的说明情况是, HSTS这个头必须要携带includeSubDomains这个参数, 目的是为了能够防止子域名出现降级的问题;同时只启用TLS 1.2和TLS 1.3这两个版本的做法, 来把TLS 1.0和TLS 1.1彻底关闭掉;至于cipher列表而言则只保留那些具备完美前向保密(PFS)特性的套件。

在Apache运行环境的情况下, 你不得不去把那些配置项放到虚拟主机里面去操作, 然后需要配置的东西里得有SSLOptions还有Header always set Strict-Transport-Security这些指令, 这么一来, 它们的处理逻辑就是完全一模一样的。

高权重域名HTTPS配置:证书选型到全站部署实操指南(图1)

HTTP到HTTPS的301重定向

要在当前的状况下面对80端口server块这件事情, 把以下规则给添加上去。

server {
    listen 80;
    server_name gname.xin www.gname.xin;
    return 301 https://$host$request_uri;
}

这个地方一定要用301永久重定向, 而不能用302临时重定向, 这样做是为了确保搜索引擎能够把协议的权重完整地迁移过去。在同一个域名下面, HTTP和HTTPS这两种协议只能保留一个活跃的入口, 重定向的链路必须严格限制为一跳, 绝对禁止出现二次跳转的情况。

部署后验证清单

请用浏览器访问https://gname.xin这个网址, 确认地址栏锁形图标无任何安全警告。

执行curl -IIL http://gname.xin这个操作, 确认证明过程只需要走一次301跳转, 就可以到达终点的那个HTTPS链接。

使用testssl.sh来完成A+级的扫描工作, 以此确保系统中不存在中间人的漏洞。

核查robots.txt与sitemap.xml中所有URL均已替换为https协议;

在使用CDN或者反向代理的时候, 必须确认边缘节点那边已经同步地开启了TLS终止这个功能了, 并且证书的覆盖范围是完全的没有任何遗漏。

常见故障处理

现象 根因 处理方式
浏览器提示CERT_DATE_INVALID 服务器系统时间与证书有效期偏差过大 部署chronyd或systemd-timesyncd同步NTP
HSTS锁定后无法回退HTTP 曾误配HSTS响应头 清除CDN与浏览器缓存高权重域名HTTPS配置指南,等待max-age自然过期
页面出现混合内容警告 静态资源仍引用http://地址 全局替换为https://或协议相对路径
通配符证书不生效 SAN中缺少*.gname.xin 重新签发包含通配符的证书并 reload

你把以上那些步骤全部做完, 并且通过验证以后, 那个权重大于等于0.5的高权重域名在HTTPS部署方面, 就进入了符合规定的终态, 它的搜索权重以及在检索系统中的收录状态, 都会保持不受影响的样子。