一、迁移前的技术评估与准备
1.1 域名解析状态验证
在启动迁移前需确认目标域名已正确配置DNS解析,可通过以下命令验证:
nslookup example.comdig example.com +short
确保A记录或CNAME记录指向当前服务器IP,且TTL值建议设置为300秒以下以加速DNS更新传播。对于使用CDN的网站,需同步检查CNAME配置是否指向CDN提供商的节点。
1.2 混合内容审计
使用浏览器开发者工具(F12→Console)或在线扫描工具(如SSL Labs的SSL Test)检测页面中的HTTP资源引用。典型问题包括:
- 图片/CSS/JS文件使用
http://协议 - 第三方统计代码未支持HTTPS
- 内部API调用仍使用明文传输
建议通过以下方式批量修复:
<!-- 修改前 --><script src="http://cdn.example.com/lib.js"></script><!-- 修改后 --><script src="//cdn.example.com/lib.js"></script><!-- 或显式指定 --><script src="https://cdn.example.com/lib.js"></script>
二、SSL/TLS证书选型策略
2.1 证书类型矩阵分析
| 验证等级 | 适用场景 | 颁发周期 | 价格区间 |
|---|---|---|---|
| DV证书 | 个人博客/测试环境 | 5分钟 | 免费-200元/年 |
| OV证书 | 企业官网/电商平台 | 1-3天 | 500-2000元/年 |
| EV证书 | 金融机构/政府机构 | 3-7天 | 2000元+/年 |
2.2 多域名场景解决方案
- 单域名证书:仅保护
example.com或www.example.com单个域名 - 通配符证书:保护
*.example.com所有子域名(如api.example.com) - SAN证书:在单张证书中支持多个完全限定域名(FQDN)
典型配置示例:
# 通配符证书配置server {listen 443 ssl;server_name *.example.com;ssl_certificate /path/to/wildcard.crt;ssl_certificate_key /path/to/wildcard.key;}
三、证书获取与验证流程
3.1 CSR生成指南
使用OpenSSL生成证书签名请求(CSR):
openssl req -new -newkey rsa:2048 -nodes \-keyout example.key -out example.csr \-subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc./CN=*.example.com"
关键参数说明:
-newkey rsa:2048:生成2048位RSA密钥对-nodes:不加密私钥文件(如需加密可移除该参数)-subj:预设证书主题信息,避免交互式提问
3.2 域名验证方式对比
| 验证方式 | 实现方式 | 适用场景 |
|---|---|---|
| DNS验证 | 添加指定TXT记录 | 所有域名类型 |
| 文件验证 | 上传验证文件至网站根目录 | 已具备网站管理权限 |
| 邮箱验证 | 接收指定管理邮箱的验证邮件 | 域名注册信息完整 |
四、服务器部署与配置优化
4.1 主流Web服务器配置示例
Nginx配置模板
server {listen 443 ssl http2;server_name example.com www.example.com;ssl_certificate /etc/nginx/ssl/example.crt;ssl_certificate_key /etc/nginx/ssl/example.key;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;# HSTS配置add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;}
Apache配置模板
<VirtualHost *:443>ServerName example.comDocumentRoot /var/www/htmlSSLEngine onSSLCertificateFile /etc/apache2/ssl/example.crtSSLCertificateKeyFile /etc/apache2/ssl/example.key# 协议与加密套件优化SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1SSLCipherSuite HIGH:!aNULL:!MD5:!kRSA# OCSP Stapling配置SSLUseStapling onSSLStaplingCache "shmcb:/var/run/ocsp(128000)"</VirtualHost>
4.2 性能优化关键点
- 会话恢复:启用SSL会话缓存减少握手开销
- OCSP Stapling:降低证书状态查询延迟
- HTTP/2启用:通过多路复用提升加载速度
- TLS 1.3部署:使用更高效的加密协议版本
五、迁移后验证与监控
5.1 功能验证清单
- 浏览器地址栏显示安全锁标志
https://前缀无混合内容警告- 所有子域名均可正常访问
- 移动端APP接口调用正常
5.2 长期监控方案
- 证书过期提醒:设置Cron任务定期检查
# 证书有效期检查脚本示例openssl x509 -in example.crt -noout -dates | grep notAfter
- SSL质量监控:集成SSL Labs API进行自动化评分
- 性能基准测试:使用WebPageTest对比迁移前后加载速度
六、常见问题处理
6.1 证书链不完整问题
症状:浏览器显示”此网站提供的安全证书不受信任”
解决方案:
- 下载完整的证书链(通常包含根证书和中间证书)
- 按顺序合并证书文件:
cat intermediate.crt root.crt >> fullchain.crt
- 在服务器配置中引用完整证书链
6.2 SEO影响应对
- 实施301永久重定向:
server {listen 80;server_name example.com;return 301 https://$host$request_uri;}
- 在Google Search Console提交新站点地图
- 更新所有外部链接指向HTTPS版本
通过系统化的技术实施,网站HTTPS迁移可实现安全性与用户体验的双重提升。建议开发团队在非业务高峰期执行迁移操作,并提前准备回滚方案。对于大型电商平台等关键业务系统,建议先在测试环境完成全流程验证后再进行生产环境部署。