为香港服务器配置 HTTPS 的完整流程
一 准备与规划
- 选择证书类型:常见有 DV(域名验证)、OV(组织验证)、EV(扩展验证);一般网站用 DV 即可,企业/支付类建议 OV/EV。也可使用 Let’s Encrypt 等免费 CA。
- 选择证书范围:单域名、多域名(SAN)、通配符(*.example.com),按子域名数量与规划选择。
- 生成 CSR 与私钥(示例):
openssl req -new -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr
妥善保存私钥,提交 CSR 给 CA 完成签发。
- 服务器与端口:确保云厂商安全组/防火墙已放行 TCP 80/443;现代 SNI 技术可在同一 IP 上部署多张证书,无需为 HTTPS 单独购买独立 IP。
二 申请与安装证书
- 方式 A(推荐)自动签发与续期:使用 Certbot 为 Nginx 一键申请并修改配置
1) 安装:sudo apt-get update && sudo apt-get install certbot
2) 获取并自动配置:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
3) 测试续期:sudo certbot renew --dry-run
- 方式 B 手动申请与部署:
1) 在服务器生成 CSR/私钥 并提交 CA;签发后下载证书文件(常见为 .crt/.pem,以及中间证书链)。
2) 部署到 Web 服务器:
- Nginx:在 server 块中配置
ssl_certificate /path/to/fullchain.crt;
ssl_certificate_key /path/to/private.key;
- Apache:配置
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.crt
3) 证书链完整性:若 CA 提供中间证书,需合并为 fullchain 或正确配置链文件,避免浏览器报“证书链不完整”。
4) 重启服务并验证:systemctl reload nginx/apache2;访问 https://yourdomain.com 检查锁标识。
三 强制 HTTPS 与 SEO 安全设置
- HTTP 到 HTTPS 的 301 跳转:
- Nginx:
server { listen 80; server_name yourdomain.com; return 301 https://$server_name$request_uri; }
- Apache(.htaccess 或 VirtualHost):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- 开启 HSTS(建议):在响应头加入 Strict-Transport-Security,强制浏览器使用 HTTPS,提升安全与 SEO。
- 全站协议一致性:修正站点内 API、静态资源、跳转链接 为 https://,避免“混合内容”导致浏览器告警。
四 验证与运维要点
- 连通性与链验证:访问站点确认证书有效、链完整;使用 SSL Labs 做评分与兼容性检测。
- 续期与监控:
- Let’s Encrypt 证书有效期通常为 90 天,建议开启自动续期(如 certbot renew 定时任务)。
- 设置到期监控与告警,避免因过期导致服务中断。
- 安全基线:仅启用 TLS 1.2/1.3,配置强加密套件,定期更新系统与组件。
五 常见场景与排错
- 证书链缺失:将 domain.crt 与 intermediate.crt 合并为 fullchain.crt(cat domain.crt intermediate.crt > fullchain.crt),并在 Nginx 使用 fullchain。
- 格式转换:如遇 .pfx/.p7b,可用 OpenSSL 转换,例如 PFX 转 PEM:
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
- 虚拟主机/面板环境:如 cPanel/Plesk 支持 AutoSSL/Let’s Encrypt 一键申请与续期,适合无命令行基础的用户。
- 多域名与通配符:按站点域名规划选择 SAN 或 通配符,减少证书数量与运维复杂度。
- 国密合规需求:需服务器与组件支持 SM2/SM3/SM4(如 GMSSL),配置与算法套件与常规 RSA/ECC 不同。