在 Debian 上“换证书”通常指 更新 / 替换 OpenSSL 使用的证书(如 Web 服务器证书、系统信任证书等)。下面按常见场景给你说明。
一般你需要:
fullchain.pem 或 cert.pemprivkey.pemsudo 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
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 或第三方 CA:
sudo cp your_ca.crt /usr/local/share/ca-certificates/
⚠️ 必须是 .crt 格式
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
如果是 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?),我可以给你更精确的命令。