OpenSSL 常用证书与加密速查
常用命令
openssl version
openssl s_client -connect example.com:443 -servername example.com
openssl s_client -connect example.com:443 -showcerts
openssl x509 -in cert.pem -noout -subject -issuer -dates
openssl x509 -in cert.pem -noout -text
openssl verify -CAfile ca.pem cert.pem
openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem
openssl req -x509 -newkey rsa:2048 -nodes -days 365 -keyout key.pem -out cert.pem
openssl genrsa -out key.pem 2048
openssl ecparam -genkey -name prime256v1 -out ec-key.pem
openssl dgst -sha256 -sign key.pem -out sig.bin file
openssl dgst -sha256 -verify pub.pem -signature sig.bin file
openssl pkcs12 -export -out cert.p12 -inkey key.pem -in cert.pem
openssl rand -base64 32
场景速查
| 目的 |
命令 |
| 看线上证书 |
`s_client ... |
| 检查证书链 |
s_client -showcerts |
| 自签名证书 |
req -x509 -newkey ... |
| 生成 CSR |
req -new -newkey ... |
| 校验签名 |
dgst -verify |
| 查看私钥 |
pkey -in key.pem -text -noout |
| 证书转 PFX |
pkcs12 -export |
易错点
s_client 不带 -servername 可能拿到默认站点证书;SNI 必加。
- 证书链要按叶子→中间→根的顺序配置;缺中间证书会校验失败。
- 私钥权限应为 600;不要提交到仓库。
- 自签名证书只适合内部环境;客户端要显式信任。
-days 只对自签名/签发时有效;已签发证书不能改有效期。
- 系统时间错误会导致“证书未生效/已过期”的误判。
- OpenSSL 版本差异会影响默认算法和协议;生产锁定版本。
相关命令
curl — HTTPS 验证
certbot — 证书申请与续期
ssh-keygen — SSH 密钥