ubuntu上openssl证书怎么管理
导读:Ubuntu 上 OpenSSL 证书管理实操指南 一 安装与目录准备 安装工具与依赖: sudo apt-get update && sudo apt-get install -y openssl 准备 CA 工作...
Ubuntu 上 OpenSSL 证书管理实操指南
一 安装与目录准备
- 安装工具与依赖:
- sudo apt-get update & & sudo apt-get install -y openssl
- 准备 CA 工作目录与数据库(示例使用 /etc/ssl/CA,可按需调整):
- sudo mkdir -p /etc/ssl/CA/{ private,newcerts}
- sudo chmod 700 /etc/ssl/CA/private
- echo 01 | sudo tee /etc/ssl/CA/serial
- sudo touch /etc/ssl/CA/index.txt
- 说明:后续签发与吊销会用到该目录结构及数据库文件。
二 生成密钥与证书
- 生成私钥(推荐 2048 位或更高):
- openssl genpkey -algorithm RSA -out server.key -aes256
- 生成 CSR(证书签名请求):
- openssl req -new -key server.key -out server.csr
- 自签名证书(测试/内部可用,有效期 365 天):
- openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- 使用现有 CA 签发服务器证书(需编辑 /etc/ssl/openssl.cnf 的 [CA_default] 指向你的 CA 目录,如 /etc/ssl/CA):
- openssl ca -in server.csr -out server.crt -config /etc/ssl/openssl.cnf
- 查看证书信息:
- openssl x509 -in server.crt -noout -text
三 验证与信任链管理
- 验证证书有效性(单向,使用指定 CA 证书):
- openssl verify -CAfile ca_bundle.crt server.crt
- 验证证书是否被吊销(CRL 检查):
- 先更新 CRL:openssl ca -config /etc/ssl/openssl.cnf -gencrl -out crl.pem
- 再验证:openssl verify -CAfile ca_bundle.crt -untrusted crl.pem server.crt
- 证书链与中间证书:
- 部署时将服务器证书与中间证书按顺序拼接为 fullchain(例如:cat server.crt intermediate.crt > fullchain.crt),客户端按链逐级验证。
四 吊销与 CRL 运维
- 获取待吊销证书的序列号:
- openssl x509 -in server.crt -noout -serial
- 执行吊销(更新 CA 数据库状态):
- openssl ca -config /etc/ssl/openssl.cnf -revoke server.crt
- 生成/更新 CRL(建议设置合理过期时间,如 7 天):
- openssl ca -config /etc/ssl/openssl.cnf -gencrl -out crl.pem -crldays 7
- 发布与分发 CRL:
- 将 crl.pem 通过 HTTP/HTTPS 对外提供,并在服务器/客户端验证时引用
- 自动化更新(示例定时任务,每 7 天 更新并热重载 Nginx):
- 0 3 * * * cd /etc/ssl/CA & & openssl ca -gencrl -out crl.pem -crldays 7 & & systemctl reload nginx
- 提示:若未定期更新 CRL,依赖 CRL 的验证可能会失败或被拒绝。
五 格式转换与服务器部署
- 常用格式转换:
- PEM ↔ DER:
- openssl x509 -in cert.pem -outform DER -out cert.der
- openssl x509 -in cert.der -inform DER -out cert.pem
- PKCS#12(.pfx/.p12,含私钥与证书,适合导入浏览器/Windows):
- 导出:openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name myserver
- 分解:
- 仅证书:openssl pkcs12 -in server.p12 -clcerts -nokeys -out cert.pem
- 仅私钥:openssl pkcs12 -in server.p12 -nocerts -nodes -out key.pem
- PEM ↔ DER:
- Nginx 配置示例(单向 TLS):
- ssl_certificate /path/to/fullchain.crt;
- ssl_certificate_key /path/to/server.key;
- 生产环境建议使用受信任 CA(如 Let’s Encrypt)并配合 certbot 自动续期。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu上openssl证书怎么管理
本文地址: https://pptw.com/jishu/753041.html
