1.1 说明:大多数CDN提供两种模式——边缘托管证书(Edge/Managed)与自有证书上传(自管)。
1.2 建议:若需要快速上线或使用免费证书,优先选边缘托管;若有合规或私钥控制要求,选择自管。
1.3 注意项:自管证书需上传证书链与私钥,并留意密钥格式(PEM)与密码。
2.1 生成私钥与CSR(示例openssl命令):openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -subj "/CN=www.example.com"。
2.2 提交CSR给CA(商业CA或Let’s Encrypt),获取证书文件(.crt/.pem)与中间链。
2.3 合并证书链(若需要):cat your.crt intermediate.crt > fullchain.crt。
3.1 CloudFront(AWS):使用AWS Certificate Manager(ACM)导入证书或在us-east-1申请公有证书,然后在CloudFront分配证书(Distribution > Edit > SSL Certificate > 选择ACM证书)。若导入自有证书,使用IAM或ACM导入并确保包含私钥。
3.2 Cloudflare:Dashboard > SSL/TLS > Edge Certificates。若使用自有证书,开启“自定义证书”并上传私钥与证书;也可使用Cloudflare Origin CA证书保护源站。
3.3 阿里云CDN:控制台 > 安全 > HTTPS证书管理 > 上传证书(填写证书公钥、私钥、证书链),然后在域名管理中启用HTTPS并选择证书。
3.4 腾讯云CDN:控制台 > 内容分发 > 实例域名 > HTTPS配置 > 添加证书(支持自签/上传或使用腾讯云SSL)。填写证书、公钥与私钥,保存并发布变更。
4.1 检查TLS版本:确认CDN支持TLS1.2/1.3(当前主流建议启用TLS1.2+)。在控制台查支持列表或联系客服确认。
4.2 Cipher套件:部分老旧客户端需要特定Cipher,若需兼容老设备可在CDN控制台调整,但通常建议使用现代安全套件。
4.3 HTTP/2/3支持:Cloudflare、部分CDN支持QUIC/HTTP3,AWS CloudFront已支持HTTP/2但HTTP/3需检查区域与版本。
5.1 DNS指向:确保域名的CNAME或A记录指向CDN提供的地址,并在DNS生效后再启用HTTPS。
5.2 回源证书:若回源使用HTTPS,建议在源站部署有效证书或使用CDN提供的Origin CA证书(如Cloudflare)并配置回源校验策略。
5.3 缓存清理:证书或配置变更后执行CDN缓存清理(Purge)或等待TTL,以防旧资源造成混合内容问题。
6.1 openssl测试TLS:openssl s_client -connect www.example.com:443 -servername www.example.com -tls1_2,查看证书链和协议。
6.2 curl测试HTTP/2与证书:curl -vk --http2 https://www.example.com/,观察Negotiated protocol与证书详情。
6.3 浏览器工具:使用Chrome DevTools查看Security面板、确认证书链、OCSP stapling与是否存在mixed content(混合内容)。
7.1 “不受信任的证书”问题:检查是否上传了完整证书链(根/中间)。
7.2 私钥不匹配:确保证书对应的私钥与上传的私钥一致;可用openssl x509 -noout -modulus -in cert.pem | openssl md5 与私钥比较。
7.3 过期与自动更新:托管证书通常自动续期,自管证书需建立监控并提前续签。
问:不同CDN的证书兼容性会影响老旧浏览器吗?
答:会。若CDN默认仅启用TLS1.3和现代Cipher,极少数老旧客户端(如Android 4.4之前、老IE)可能无法连接。解决办法:在CDN控制台启用对TLS1.2的兼容支持或为特定流量配置回退策略,但需权衡安全性。
问:使用CDN的边缘托管证书是否影响SEO与搜索索引?
答:通常不会。只要HTTPS配置正确与域名一致(无频繁跳转或证书错误),搜索引擎会像直接访问一样索引内容。注意保持301重定向稳定、HSTS与Canonical配置一致,以免影响索引。
问:如何验证上传到CDN的自有证书完全生效?
答:步骤:1) DNS生效后用openssl s_client -connect domain:443 -servername domain检查证书链;2) 用curl -I --http2 https://domain/查看协议;3) 在不同ISP与设备上测试以确认无中间错误;4) 执行CDN缓存清理并观察访问日志(是否来自CDN边缘)。若上述均正常,即表示生效。
