OpenSSL命令大全:SSL证书申请、查看、转换和排错完整指南
OpenSSL是通用的 SSL 工具之一,它是 SSL 协议的开源实现,不想使用 OpenSSL,您可以使用我们的SSL 书工具完成许多相同的操作。本文我们列出了最常见 OpenSSL 命令及其用法供您参考!

OpenSSL是什么?
OpenSSL是一款开源密码工具集,广泛用于SSL/TLS证书管理、密钥生成、CSR申请文件创建以及HTTPS故障排查。
在SSL证书部署过程中,OpenSSL常用于:
- 生成私钥(Private Key)
- 创建CSR证书请求文件
- 查看SSL证书详细信息
- 验证证书链是否完整
- 检查证书与私钥是否匹配
- 转换证书格式(PEM、PFX、DER等)
- 排查HTTPS连接错误
虽然行业习惯仍称“SSL证书”,但当前网站HTTPS通信实际基于TLS协议,OpenSSL主要用于TLS证书相关管理操作。
一、OpenSSL安装方法
OpenSSL支持Windows、Linux、macOS等操作系统。
Linux系统通常默认安装:
openssl version
查看版本:
OpenSSL 3.0.0
如果未安装:
Ubuntu:
apt install openssl
CentOS:
yum install openssl
Windows用户可以安装OpenSSL Windows版本,也可以使用在线SSL证书工具完成部分操作。
二、使用OpenSSL生成SSL证书申请文件(CSR)
申请商业SSL证书时,通常需要提交CSR文件。
CSR中包含:
- 域名信息
- 企业信息
- 公钥信息
私钥不会提交给CA机构,需要由申请方自行保存。
1. 生成私钥和CSR文件
openssl req \
-new \
-newkey rsa:2048 \
-nodes \
-keyout private.key \
-out request.csr
生成:
private.key 私钥文件
request.csr 证书申请文件
申请SSL证书时,将CSR提交给CA即可。
2. 使用已有私钥生成CSR
如果服务器已经存在私钥:
openssl req \
-new \
-key private.key \
-out request.csr
适用于:
- SSL证书续费
- 更换CA机构
- 重新申请证书
三、使用OpenSSL查看SSL证书信息
部署证书前,经常需要确认:
- 域名是否正确
- 有效期是否正常
- 签发机构是谁
- 是否包含SAN多域名
查看证书详细信息
openssl x509 \
-in certificate.crt \
-text \
-noout
可以查看:
- Subject(证书主体)
- Issuer(颁发机构)
- Validity(有效期)
- SAN域名列表
- 公钥算法
查看证书有效期
openssl x509 \
-in certificate.crt \
-noout \
-dates
输出:
notBefore=Jun 01 00:00:00 2026 GMT
notAfter=Jun 01 23:59:59 2027 GMT
可用于检查SSL证书是否过期。
查看证书绑定域名
openssl x509 \
-in certificate.crt \
-text \
-noout | grep DNS
检查:
- www.example.com
- example.com
- *.example.com
是否包含在证书SAN列表中。
四、检查SSL证书链是否完整
很多HTTPS错误并不是证书过期,而是:
中间证书未正确安装。
检查服务器证书链:
openssl s_client \
-connect example.com:443 \
-servername example.com
正常情况下会显示:
Certificate chain
0 网站证书
1 中间CA证书
2 根CA证书
如果缺少中间证书,部分浏览器可能提示:
- 证书不受信任
- NET::ERR_CERT_AUTHORITY_INVALID
- SSL证书链错误
五、检查SSL证书和私钥是否匹配
SSL证书必须与生成CSR时的私钥对应。
如果证书和私钥不匹配,服务器无法启动HTTPS。
查看证书公钥:
openssl x509 \
-noout \
-modulus \
-in certificate.crt | openssl md5
查看私钥:
openssl rsa \
-noout \
-modulus \
-in private.key | openssl md5
两个结果一致:
说明:
✅ SSL证书和私钥匹配
不一致:
说明:
❌ 使用了错误私钥
六、OpenSSL转换SSL证书格式
常见格式:
| 格式 | 常用服务器 |
|---|---|
| PEM | Apache、Nginx |
| PFX/P12 | IIS、Windows服务器 |
| JKS | Java Tomcat |
| DER | 部分Windows环境 |
DER转换PEM
openssl x509 \
-in certificate.der \
-inform der \
-out certificate.pem
PEM转换DER
openssl x509 \
-in certificate.pem \
-outform der \
-out certificate.der
PEM转换PFX
IIS服务器通常需要PFX格式:
openssl pkcs12 \
-export \
-out certificate.pfx \
-inkey private.key \
-in certificate.crt \
-certfile ca_bundle.crt
生成:
certificate.pfx
可直接导入:
Windows IIS
七、创建自签名SSL证书
测试环境可以使用自签名证书:
openssl req \
-x509 \
-sha256 \
-nodes \
-days 365 \
-newkey rsa:2048 \
-keyout private.key \
-out certificate.crt
适合:
- 内网测试
- 开发环境
- 实验环境
不适合:
- 企业官网
- 商业网站
- 面向用户的网站
因为浏览器不会默认信任自签名证书。
八、使用OpenSSL排查HTTPS错误
查看服务器TLS连接
openssl s_client \
-connect example.com:443 \
-servername example.com
可以检查:
- TLS版本
- 证书链
- 加密算法
- 握手状态
常用于排查:
- SSL握手失败
- TLS协议错误
- 证书链异常
OpenSSL常见使用场景总结
| 需求 | 命令 |
|---|---|
| 生成CSR | openssl req |
| 生成私钥 | openssl genrsa |
| 查看证书 | openssl x509 |
| 查看有效期 | openssl x509 -dates |
| 检查证书链 | openssl s_client |
| 检查私钥匹配 | openssl modulus |
| 转换PFX | openssl pkcs12 |
| 生成测试证书 | openssl req -x509 |
常见问题
OpenSSL和SSL证书是什么关系?
OpenSSL不是SSL证书,而是管理SSL/TLS证书的工具。
SSL证书由CA机构签发,OpenSSL用于:
- 创建申请文件
- 查看证书
- 验证配置
- 排查问题
为什么服务器安装证书后仍然提示不安全?
常见原因:
- 证书链不完整
- 域名不匹配
- SSL证书过期
- HTTPS页面存在混合内容
- 服务器未正确绑定证书
可以使用SSL检测工具检查:→ SSL证书检查工具
OpenSSL可以申请免费SSL证书吗?
OpenSSL只能生成CSR和管理密钥,不能签发公网可信证书。
免费SSL证书需要通过CA机构申请,例如:
- Let's Encrypt
- Sectigo
- sslTrus
总结
OpenSSL是SSL/TLS证书部署过程中最重要的命令工具之一。
无论是申请SSL证书、检查证书信息、转换证书格式,还是排查HTTPS连接问题,OpenSSL都是运维人员必须掌握的基础工具。
对于普通网站用户,可以使用在线SSL证书工具完成检测;对于企业服务器、云平台和大型系统,建议结合OpenSSL命令进行自动化证书管理。
如果您刚开始部署HTTPS,可以先了解什么是SSL证书以及SSL证书类型有哪些,根据网站规模选择适合的DV、OV或EV SSL证书。如果预算有限,也可以先申请免费SSL证书用于测试或个人网站;正式上线后,再按照SSL证书安装教程完成部署,并将网站从HTTP升级到HTTPS。如果浏览器仍提示SSL证书验证失败,可继续参考SSL证书错误修复专题,对照不同错误代码逐项排查,一般都能快速定位并解决问题。



京公网安备11010502031690号
网站经营企业工商营业执照
















