Debian OpenSSL 证书管理如何操作
导读:Debian 上的 OpenSSL 证书管理实操指南 一 安装与准备 检查是否已安装:运行命令查看版本号 命令:openssl version 安装工具与开发库(如未安装) 命令:sudo apt update &&...
Debian 上的 OpenSSL 证书管理实操指南
一 安装与准备
- 检查是否已安装:运行命令查看版本号
- 命令:
openssl version
- 命令:
- 安装工具与开发库(如未安装)
- 命令:
sudo apt update & & sudo apt install openssl libssl-dev
- 命令:
- 说明:
libssl-dev为编译依赖或调用 OpenSSL API 的程序所需,日常签发/部署证书仅需安装 openssl 即可。
二 生成私钥与 CSR
- 生成受密码保护的 RSA 私钥(2048 位)
- 命令:
openssl genpkey -algorithm RSA -out private.key -aes256
- 命令:
- 生成 CSR(证书签名请求)
- 命令:
openssl req -new -key private.key -out server.csr - 交互填写:C/ST/L/O/OU/CN(CN 建议填域名),可设置 Email 等字段
- 命令:
- 补充:如需不加密私钥(便于自动化,但安全性更低),可用
- 命令:
openssl genrsa -out private.key 2048
- 命令:
- 提示:私钥务必严格保护(文件权限建议 600),CSR 可安全提交给 CA。
三 自签名证书与服务器部署
- 生成 自签名证书(有效期 365 天)
- 命令:
openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt
- 命令:
- 部署到 Nginx
- 建议目录:
sudo mkdir -p /etc/nginx/ssl & & sudo chmod 700 /etc/nginx/ssl - 复制文件:
sudo 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
- 建议目录:
- 部署到 Apache
- 配置片段:
< VirtualHost *:443> SSLEngine on SSLCertificateFile /path/to/server.crt SSLCertificateKeyFile /path/to/private.key < /VirtualHost> - 生效:
sudo a2enmod ssl & & sudo systemctl restart apache2
- 配置片段:
- 证书链(如使用中间 CA)
- 合并顺序:服务器证书在前、中间证书在后
- 命令:
cat server.crt intermediate.crt > server-chain.crt
- 命令:
- Nginx 使用:
ssl_certificate /path/to/server-chain.crt; - Apache 使用:
SSLCertificateChainFile /path/to/intermediate.crt;(或合并为同一文件)
- 合并顺序:服务器证书在前、中间证书在后
四 验证与排错
- 查看证书内容
- 命令:
openssl x509 -in server.crt -text -noout
- 命令:
- 查看有效期
- 命令:
openssl x509 -in server.crt -noout -dates
- 命令:
- 验证证书是否由指定 CA 签发
- 命令:
openssl verify -CAfile ca_bundle.crt server.crt
- 命令:
- 在线连接诊断(SNI 场景)
- 命令:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
- 命令:
- Nginx/Apache 排错
- 语法检查:
sudo nginx -t或sudo apache2ctl configtest - 日志定位:
/var/log/nginx/error.log、/var/log/apache2/error.log - 权限与路径:证书与私钥路径正确、权限合理(私钥 600)。
- 语法检查:
五 续期 吊销 与系统 CA 更新
- 续期
- Let’s Encrypt 证书:测试续期
sudo certbot renew --dry-run,正式续期sudo certbot renew - 续期后重启依赖服务:
sudo systemctl restart nginx或sudo systemctl restart apache2 - 自签名证书:重新执行“生成自签名证书”步骤并替换旧证书,随后重启服务
- Let’s Encrypt 证书:测试续期
- 吊销与 CRL(自建/私有 CA 场景)
- 撤销证书:
openssl ca -config /etc/ssl/openssl.cnf -revoke server.crt - 生成/更新 CRL:
openssl ca -config /etc/ssl/openssl.cnf -gencrl -out crl.pem - 分发 CRL:将 crl.pem 发布到可被客户端/服务器访问的位置
- 验证是否被吊销:
openssl verify -CAfile ca_bundle.crt -untrusted crl.pem server.crt
- 撤销证书:
- 系统 CA 证书更新(信任链)
- 命令:
sudo apt update & & sudo apt install --only-upgrade ca-certificates & & sudo update-ca-certificates
- 命令:
- 安全与维护
- 定期更新 OpenSSL 与相关包:
sudo apt update & & sudo apt upgrade libssl-dev - 避免使用过时算法与过短密钥长度,优先 RSA 2048+ 或 ECC。
- 定期更新 OpenSSL 与相关包:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian OpenSSL 证书管理如何操作
本文地址: https://pptw.com/jishu/789958.html
