温馨提示×

debian如何替换SSL证书

小樊
45
2026-10-22 12:58:43
栏目: 云计算

在 Debian 上“替换 SSL 证书”通常分 两种情况:

  1. 系统/服务使用的证书(如 Nginx、Apache)
  2. Debian 自身信任的 CA 证书(系统级)

下面分别说明常见做法。


一、Web 服务(Nginx / Apache)替换 SSL 证书

1️⃣ 准备新证书文件

通常需要:

  • 证书:fullchain.pem 或 cert.pem
  • 私钥:privkey.pem

放到安全目录,例如:

/etc/ssl/mydomain/

2️⃣ 修改服务配置

Nginx 示例

ssl_certificate     /etc/ssl/mydomain/fullchain.pem;
ssl_certificate_key /etc/ssl/mydomain/privkey.pem;

测试配置:

nginx -t

重载:

systemctl reload nginx

Apache 示例

SSLCertificateFile      /etc/ssl/mydomain/cert.pem
SSLCertificateKeyFile   /etc/ssl/mydomain/privkey.pem
SSLCertificateChainFile /etc/ssl/mydomain/chain.pem
apache2ctl configtest
systemctl reload apache2

二、使用 certbot(Let’s Encrypt)自动替换

如果是 certbot 签发的证书:

certbot renew

或强制更新:

certbot renew --force-renewal

Nginx/Apache 插件会自动 reload。


三、替换 Debian 系统信任的 CA 证书

适用于:

  • 内网 CA
  • 自签名根证书
  • 替换系统级信任证书

1️⃣ 复制证书

cp my-ca.crt /usr/local/share/ca-certificates/my-ca.crt

⚠️ 必须是 .crt 格式

2️⃣ 更新信任库

update-ca-certificates

输出类似:

Updating certificates in /etc/ssl/certs...
1 added, 0 removed

3️⃣ 删除旧证书

rm /usr/local/share/ca-certificates/my-ca.crt
update-ca-certificates

四、常见问题排查

❌ 证书不生效

  • 是否 reload 而非 restart
  • 私钥权限是否为 600
  • 证书链是否完整

❌ 浏览器仍报不安全

  • 中间证书缺失
  • 系统时间错误
  • 证书域名不匹配

五、快速检查命令

openssl x509 -in cert.pem -noout -dates
openssl x509 -in cert.pem -noout -subject

如果你能告诉我:

  • 用的是 Nginx / Apache / 其他
  • 证书是 Let’s Encrypt / 自签 / 商业证书

我可以给你更精确的步骤。

0 踩