《OpenSSL 证书查看与管理》
1 简介
OpenSSL x509 / req 命令用于查看、转换、签发证书与 CSR。日常排查多在于「证书内容、指纹、有效期、域名是否匹配」。
2 查看证书
2.1 完整内容
openssl x509 -in cert.pem -noout -text
2.2 常用字段输出
# 证书序列号
openssl x509 -in cert.pem -noout -serial
# 拥有者(Subject)
openssl x509 -in cert.pem -noout -subject
# RFC2253 格式
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
# 支持 UTF8 的终端一行输出(转义非打印字符)
openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -esc_msb
# MD5 指纹
openssl x509 -in cert.pem -noout -fingerprint
# SHA-1 指纹
openssl x509 -sha1 -in cert.pem -noout -fingerprint
3 格式转换
3.1 PEM 转 DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
3.2 crt 转 pem
openssl x509 -in tmp.crt -out tmp.pem
4 证书与 CSR 互相转换
4.1 证书转 CSR
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
4.2 查看 CSR 细节
openssl req -in my.csr -noout -text
openssl req -text -noout -verify -in my.csr # 同时校验签名
5 签发证书
5.1 自签名 CA 扩展项
# 给指定 CSR 签发自签名 CA 证书
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca \
-signkey key.pem -out cacert.pem
5.2 用 CA 签发用户证书
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr \
-CA cacert.pem -CAkey key.pem -CAcreateserial
6 常见问题
6.1 证书与私钥不匹配
对比两者对应的公钥:
openssl x509 -in cert.pem -noout -pubkey
openssl pkey -in key.pem -pubout
两者一致才匹配。
6.2 证书域名校验失败
检查 text 输出中的 X509v3 Subject Alternative Name 是否包含访问用的域名/IP。
7 参考文档
阅读 —
·
全站 —