常见问题排查 (FAQ)
常见问题
15分钟阅读
4567次浏览
📜 证书相关错误
原因分析
浏览器无法验证SSL证书的签发机构(CA)。
解决方案
- 检查证书链是否完整
- 确保安装了完整的CA证书链(根证书 + 中间证书)
- Nginx: 使用
ssl_certificate指定包含完整链的文件 - Apache: 确保
SSLCertificateChainFile已配置
- 使用在线工具检测
- 访问 SSL Labs Test
- 查看"Chain Issues"部分是否有警告
- 重新下载证书包
- 从TrustySSL控制台重新下载完整证书包
- 确保包含所有必需的中间证书
Nginx配置示例:
server {
listen 443 ssl;
ssl_certificate /path/to/fullchain.pem; # 包含完整证书链
ssl_certificate_key /path/to/private.key;
}
原因分析
证书中的域名(CN/SAN)与访问的URL不匹配。
解决方案
- 确认证书覆盖的域名
# 查看证书包含的域名 openssl x509 -in cert.pem -noout -text | grep DNS - 检查访问方式
- 如果证书是
www.example.com,不要用example.com访问(反之亦然) - 建议同时申请主域名和www子域名的证书
- 如果证书是
- 使用通配符或多域名证书
- 通配符:
*.example.com覆盖所有子域名 - SAN:一张证书包含多个不同域名
- 通配符:
原因分析
证书已过期或尚未生效。
解决方案
- 检查证书有效期
openssl x509 -in cert.pem -noout -dates - 如已过期,立即续期
- 登录TrustySSL控制台
- 选择对应订单进行续费/重新签发
- 下载新证书并替换服务器上的旧文件
- 设置到期提醒
- 建议在到期前30天开始续期流程
- 启用自动续期服务(如支持)
⚙️ 安装配置问题
- 检查文件路径
- 确认证书文件路径正确
- 使用绝对路径而非相对路径
- 检查文件权限
# 确保Nginx用户可读取 chmod 644 /path/to/cert.pem chmod 600 /path/to/private.key # 私钥更严格 # 检查SELinux(如果有) ls -Z /path/to/cert.pem - 测试配置语法
nginx -t # 或 /usr/sbin/nginx -t
可能原因及解决:
- 私钥格式不匹配
- 确保私钥与证书是成对的(同一CSR生成)
- 使用以下命令验证:
# 验证私钥和证书是否匹配 openssl x509 -noout -modulus -in cert.pem | openssl md5 openssl rsa -noout -modulus -in private.key | openssl md5 # 两个MD5值应该相同
- 私钥格式问题
- Apache需要PEM格式私钥
- 如果是PKCS#8格式,转换命令:
openssl rsa -in pkcs8.key -out pem.key
- 检查目录权限
chmod 755 /var/www/html chmod 644 /var/www/html/index.html - Nginx配置检查
- 确保
root指令指向正确的网站目录 - 检查
index指令是否包含默认首页文件
- 确保
- 防火墙/SELinux
- 临时关闭测试:
setenforce 0 - 如果是SELinux问题,执行:
chcon -R -t httpd_sys_content_t /var/www/html
- 临时关闭测试:
✅ 域名验证问题
DNS验证失败
症状
DNS TXT记录已添加,但验证一直失败
解决方案
- 等待DNS传播(最长48小时)
- 使用工具查询记录是否生效:
nslookup -type=TXT _acme-challenge.yourdomain.com dig TXT _acme-challenge.yourdomain.com +short - 检查TXT值是否完全一致(注意引号)
- 尝试使用不同的DNS提供商验证
邮箱验证失败
症状
未收到验证邮件或邮件被退回
解决方案
- 检查垃圾邮件文件夹
- 将CA邮箱加入白名单
- 确认MX记录配置正确
- 更换管理员邮箱重试
- 改用HTTP或DNS验证方式
🌐 浏览器警告处理
| 警告信息 | 含义 | 解决方法 |
|---|---|---|
| "您的连接不是私密连接" | 证书无效、过期或不信任 | 更新有效证书,安装完整证书链 |
| "此网站使用了过期的安全配置" | TLS版本过低或加密套件弱 | 禁用SSLv3/TLS1.0/1.1,仅保留TLS1.2+ |
| "此页面包含其他不安全资源" | 混合内容(HTTPS页加载HTTP资源) | 将所有资源改为HTTPS或使用相对协议 |
| "站点不安全" | 表单在非HTTPS页面提交 | 强制全站HTTPS跳转 |
混合内容快速修复:
<!-- 错误 -->
<script src="http://cdn.example.com/jquery.js"></script>
<!-- 正确 -->
<script src="//cdn.example.com/jquery.js"></script>
<!-- 或 -->
<script src="https://cdn.example.com/jquery.js"></script>
⚡ 性能优化建议
启用OCSP Stapling
减少SSL握手时间,提升首次访问速度:
Nginx配置
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/ca-bundle.crt;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
Apache配置
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(128000)"
Session缓存与Keep-Alive
# Nginx
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets on;
keepalive_timeout 70;
🔄 证书续期指南
续期时间线
- 到期前30天:开始准备续期
- 到期前14天:完成续期操作
- 到期前7天:最后期限!
续期步骤
-
登录控制台Step 1
进入TrustySSL管理后台
-
选择需要续期的证书Step 2
在我的证书列表中找到即将到期的证书
-
选择续期时长并支付Step 3
支持1年/2年/多年优惠套餐
-
下载新证书并部署Done!
替换服务器上的旧证书文件,重启Web服务器
重要提醒:
- 续期后的证书私钥可以保持不变(除非您想更换)
- 建议在业务低峰期进行证书替换和重启操作
- 替换后务必测试所有功能正常
最后更新:2026-05-26