《OpenSSL 证书查看与管理》

《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 参考文档

阅读 — · 全站 —
🎸 我的歌单 0 首