把高权重的域名部署上HTTPS, 其核心操作主要就是三个阶段, 第一阶段是申请并且安装SSL证书, 第二阶段是在服务器或者是CDN这层级当中完成绑定关系, 第三阶段是设置那个从HTTP到HTTPS的301强行的跳转机制。
整个操作步骤本身并不复杂, 但是, 一旦给那些权重非常高的域名配错了配置情况, 那么针对网站收录内容以及用户信任度方面所带来的打击破坏程度, 是远远大于普通站点的。下面将会按照具体的执行先后顺序来进行逐步的详细说明。
前置确认
动手前核对三项:
1. 现在已经拿到了域名DNS管理的权限, 或者是拿到了CDN控制台的权限。
2. 服务器防火墙这边已经放行了那个443端口, 它是基于TCP协议的。
3. 证书的類型已經選定了, 如果是品牌型的高權重域名, 那麼優先選擇OV或者是EV證書, 如果要快速上線的話, 可以選購DV證書。
申请SSL证书
免费的方案: 通过使用Let's Encrypt来签发DV证书, 然后执行certbot来完成域名所有权验证, 这个验证过程包括DNS txt记录或者http文件验证。
付费方案是把钱投进去, 然后去向DigiCert这些CA去申请, 还要向GlobalSign这些CA去申请, 具体办的是OV或者是EV的这种证书, 审核周期大概是3到7个工作日。
关键的细节是, 证书里面的名字这个字段, 它必须和你的域名进行精确的匹配。如果你在同时使用www以及非www这两个入口的时候, 你就需要去使用那些支持多个域名的SAN证书高权重域名HTTPS配置指南高权重域名HTTPS配置指南,以便能够覆盖到这两个方面。
服务器/CDN层部署
Nginx示例(/etc/nginx/conf.d/下修改):
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
}
一旦域名的接入工作完成了CDN的环节, 我们就拿gz88.cn这个具体的例子来把事情说清楚。你可以在那个CDN管理面板里面找到证书上传的具体入口。这个地方位于站点管理的下一级栏目, 再往里面看就是SSL/TLS选项, 然后在里面选择上传证书的操作项目。
把相关的文件材料成功上传上去之后, 你就要开启那个强制HTTPS开关。只要这个开关被打开了, 处理TLS握手的相关任务自然就就可以交给边缘节点去负责执行了。
Apache的用户要进行修改的工作, 要把这个httpd-ssl.conf文件给打开, 然后再把那个SSLCertificateFile这个设置项去指向那个证书所在的路径, 等这些弄好了以后, 再去重新启动一下这个服务。
HTTP→HTTPS 301跳转
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
在 CDN方案之中, 我们要把重定向规则设置好, 要把所有端口为 80的请求, 全部通过 301状态码转向到 443端口上。
同时呢, 还需要把网站里面所有的内部链接以及 CSS样式文件、JS脚本和图片引用的地址都改一遍, 要将从http://开头的链接改为使用 https协议开头的链接, 或者是采用那种不写明具体协议的相对路径写法, 这样就可以杜绝掉混合内容产生的警告提示了。
高权重域名易踩的坑
1. 证书域名不匹配是存在的情况, 原因是开发者漏掉了www这个子域名, 这就导致有一部分人访问的时候, 能看见他们的浏览器弹窗警告说“不安全”这种提示语, 对于这一类问题, 必须采取用SAN这种类型的证书, 或者同时使用双证书的方法来进行覆盖处理, 以便解决问题。
2. 旧URL断链的情况是这样的, 在HTTP时期积累的已被收录的URL, 在完成跳转操作后会出现404的错误提示。301重定向的规则必须能够覆盖所有旧的网站路径, 而不能只是针对首页部分来设置。
3. 证书到期无监控: Let's Encrypt证书的有效期是90天, OV证书的有效期通常是1年。我们建议在到期前的30天时, 设置自动续签, 具体的命令是certbot renew, 或者也可以设置日历提醒。
4. 缺少HSTS的意思是说, 对于权重很高那种域名, 应该给它们加上一个响应头, 这个名字就叫Strict-Transport-Security: max-age=31536000; includeSubDomains。这样做的目的, 就是为了防止攻击者搞降级手段来进攻。
上线后验证
用户通过浏览器访问https://yourdomain.com页面, 确认页面地址栏中能够显示正常的锁状标志符号, 并且没有任何出现安全相关的警示信息。
使用SSL Labs这个网站, 也就是地址为ssllabs.com的这个平台来进行扫描检查, 最后要求达到的目标等级必须是A或者比A更好的级别。
你需要登录Google Search Console或者百度资源平台, 去确认下面这些报告是都没有的, 也就是说要确认没有混合内容这个情况出现, 也没有证书无效这种情况出现。
执行curl -I http://yourdomain.com龙南市就业服务平台,确认301正确指向HTTPS地址。
当上述的这六个步骤都被一一地处理完毕以后, 关于那个具有高权重的域名所要进行的HTTPS方面的部署工作, 就算是形成了一个完整的、首尾相接的闭环环节了。在此之后的时间里, 人们只需要在相应的证书快要过期的时候去做好续签这一项事情就可以, 除此以外的其他各项配置内容都不用再去进行频繁的调整和改变了。


