温馨提示×

debian openssl怎样换证书

小樊
43
2026-09-14 17:06:32
栏目: 云计算

在 Debian 上“换证书”通常指 更新 / 替换 OpenSSL 使用的证书(如 Web 服务器证书、系统信任证书等)。下面按常见场景给你说明。


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

1️⃣ 准备新证书文件

一般你需要:

  • 证书:fullchain.pemcert.pem
  • 私钥:privkey.pem

2️⃣ 替换证书文件

sudo cp fullchain.pem /etc/ssl/certs/your_domain.crt
sudo cp privkey.pem /etc/ssl/private/your_domain.key

设置权限(重要):

sudo chmod 600 /etc/ssl/private/your_domain.key
sudo chown root:root /etc/ssl/private/your_domain.key

3️⃣ 修改 Nginx 配置

ssl_certificate     /etc/ssl/certs/your_domain.crt;
ssl_certificate_key /etc/ssl/private/your_domain.key;

测试并重载:

sudo nginx -t
sudo systemctl reload nginx

Apache 类似:

sudo a2ensite your-site
sudo systemctl reload apache2

二、更新系统信任的 CA 证书(Debian 自带 OpenSSL)

如果你是自己签的 CA 或第三方 CA:

1️⃣ 复制证书到信任目录

sudo cp your_ca.crt /usr/local/share/ca-certificates/

⚠️ 必须是 .crt 格式

2️⃣ 更新证书库

sudo update-ca-certificates

验证:

openssl version -d
ls /etc/ssl/certs | grep your_ca

三、只检查 / 测试证书是否生效

openssl x509 -in /etc/ssl/certs/your_domain.crt -noout -dates

测试 HTTPS:

openssl s_client -connect yourdomain.com:443

四、Let’s Encrypt 证书更新(certbot)

如果是 certbot:

sudo certbot renew
sudo systemctl reload nginx

或自动续期(默认已配置):

systemctl list-timers | grep certbot

五、常见问题

❌ 私钥不匹配

openssl x509 -noout -modulus -in cert.crt | openssl md5
openssl rsa -noout -modulus -in key.key | openssl md5

MD5 必须一致

❌ 权限错误

私钥必须是 600,否则 Nginx / Apache 起不来


如果你能说明 具体场景(Nginx?Apache?系统证书?自签?Let’s Encrypt?),我可以给你更精确的命令。

0