Debian 上的 OpenSSL 证书管理实操指南
一 安装与准备
openssl versionsudo apt update && sudo apt install openssl libssl-devlibssl-dev 为编译依赖或调用 OpenSSL API 的程序所需,日常签发/部署证书仅需安装 openssl 即可。二 生成私钥与 CSR
openssl genpkey -algorithm RSA -out private.key -aes256openssl req -new -key private.key -out server.csropenssl genrsa -out private.key 2048三 自签名证书与服务器部署
openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crtsudo mkdir -p /etc/nginx/ssl && sudo chmod 700 /etc/nginx/sslsudo cp server.crt /etc/ssl/certs/ && sudo cp private.key /etc/ssl/private/server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/private.key;
}
sudo nginx -t && sudo systemctl restart nginx<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/private.key
</VirtualHost>
sudo a2enmod ssl && sudo systemctl restart apache2cat server.crt intermediate.crt > server-chain.crtssl_certificate /path/to/server-chain.crt;SSLCertificateChainFile /path/to/intermediate.crt;(或合并为同一文件)四 验证与排错
openssl x509 -in server.crt -text -nooutopenssl x509 -in server.crt -noout -datesopenssl verify -CAfile ca_bundle.crt server.crtopenssl s_client -connect yourdomain.com:443 -servername yourdomain.comsudo nginx -t 或 sudo apache2ctl configtest/var/log/nginx/error.log、/var/log/apache2/error.log五 续期 吊销 与系统 CA 更新
sudo certbot renew --dry-run,正式续期 sudo certbot renewsudo systemctl restart nginx 或 sudo systemctl restart apache2openssl ca -config /etc/ssl/openssl.cnf -revoke server.crtopenssl ca -config /etc/ssl/openssl.cnf -gencrl -out crl.pemopenssl verify -CAfile ca_bundle.crt -untrusted crl.pem server.crtsudo apt update && sudo apt install --only-upgrade ca-certificates && sudo update-ca-certificatessudo apt update && sudo apt upgrade libssl-dev