@linux系统SSL证书转换(Openssl转换PFX)

在Linux中,你可以使用OpenSSL工具将PFX/P12格式的证书转换为单独的CRT(证书)、KEY(私钥)文件以及提取证书链

1. 提取私钥文件(.key)

bash 复制代码
openssl pkcs12 -in your_certificate.pfx -nocerts -out private.key -nodes

系统会提示你输入PFX文件的密码。

2. 提取证书文件(.crt)

bash 复制代码
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out certificate.crt

3. 提取证书链(如果有)

bash 复制代码
openssl pkcs12 -in your_certificate.pfx -cacerts -nokeys -out chain.crt

4. (可选) 将私钥转换为无密码格式

如果私钥有密码保护而你想移除密码:

bash 复制代码
openssl rsa -in private.key -out private_unencrypted.key

5. (可选) 验证提取的文件

验证私钥和证书是否匹配:如果两个命令输出的MD5值相同,则表示匹配。

bash 复制代码
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in private.key | openssl md5

参数说明:

bash 复制代码
-in your_certificate.pfx:指定输入的PFX文件

-nocerts:不输出证书,只输出私钥

-nokeys:不输出私钥,只输出证书

-nodes:不加密私钥

-clcerts:只输出客户端证书(不输出CA证书)

注意事项:

  1. 确保在安全的环境中操作,因为私钥是敏感信息
  2. 如果PFX文件有密码保护,上述命令会提示你输入密码
  3. 某些情况下,证书链可能已经包含在.crt文件中,不需要单独提取
  4. 你可以使用-password pass:yourpassword参数来避免交互式密码输入(不推荐用于生产环境)

完整示例:

bash 复制代码
# 提取私钥
openssl pkcs12 -in example.pfx -nocerts -out example.key -nodes

# 提取主证书
openssl pkcs12 -in example.pfx -clcerts -nokeys -out example.crt

# 提取证书链
openssl pkcs12 -in example.pfx -cacerts -nokeys -out chain.crt

# 合并证书和证书链(某些服务器需要)
cat example.crt chain.crt > fullchain.crt
相关推荐
码农客栈14 小时前
Linux I2C驱动实验
linux·运维·驱动开发
爱喝水的鱼丶14 小时前
SAP-ABAP:隐式/显式增强开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流
OpenPomeloxCommunity15 小时前
Linux 驱动基础(二):驱动自动加载的设计与实现
linux
企业解惑小助手16 小时前
如何禁止文字复制?企业文档防复制项目需求拆解方案
运维·数据库·安全
蓝速科技16 小时前
酒店门店 AI 数字人前台场景适配与落地指南
大数据·运维·数据结构·数据库·人工智能·科技
yyk3332416 小时前
Linux常见的基础命令
linux·运维·服务器
名字还没想好☜16 小时前
Docker 镜像瘦身进阶:用 distroless/scratch 把 Go 服务打到 10MB,以及没 shell 怎么调试
运维·docker·容器·golang·kubernetes
JavaPub-rodert16 小时前
Docker 深入理解:从容器原理到生产环境最佳实践
运维·docker·容器
启博网络17 小时前
实战:无公网IP环境下的企业异地组网方案(附拓扑与IP规划)
linux·网络·tcp/ip
aiot1891893521817 小时前
核芯物联蓝牙AOA高精度定位生态合作案例分享金库定位踩坑实录
大数据·运维·网络·人工智能·蓝牙aoa