openssl将证书从p7b转换为crt格式

主要作用

将 Windows 系统导出的 PKCS#7 格式证书链文件(.p7b)转换为 Linux 系统可用的 PEM 格式证书文件(.crt)

bash 复制代码
openssl pkcs7 -inform DER -print_certs -in certnew.p7b -out Linuxcert.crt

命令结构分解:

复制代码
openssl pkcs7          # 使用 OpenSSL 的 PKCS#7 工具
-inform DER            # 指定输入文件格式为 DER(二进制格式)
-print_certs           # 打印/提取证书内容
-in certnew.p7b        # 输入文件名
-out Linuxcert.crt     # 输出文件名

常见相关操作:

1. 查看证书内容
bash 复制代码
# 查看提取的证书
openssl x509 -in Linuxcert.crt -text -noout

# 查看第一个证书
openssl x509 -in Linuxcert.crt -text -noout
2. 分离证书链中的各个证书
bash 复制代码
# 将证书链拆分为单独的文件
csplit -z Linuxcert.crt '/-----BEGIN CERTIFICATE-----/' '{*}'
# 会生成多个文件:xx00, xx01, xx02 等
3. 验证证书链
bash 复制代码
# 验证证书链的完整性
openssl verify -CAfile ca-bundle.crt Linuxcert.crt

格式对比:

格式 编码 可读性 文件开头 常见扩展名
DER 二进制 不可读 二进制数据 .der, .cer, .p7b
PEM Base64 可读 -----BEGIN... .pem, .crt, .cer

诊断命令:

bash 复制代码
# 检查文件类型
file certnew.p7b

# 如果是 DER 格式,应该显示:data
# 如果是 PEM 格式,应该显示:ASCII text

# 查看文件前几行
head -n 3 certnew.p7b

# 如果是 PEM 格式,会看到:-----BEGIN PKCS7-----
# 如果是 DER 格式,会看到乱码
相关推荐
丹牛Daniel38 分钟前
Java解决HV000183: Unable to initialize ‘javax.el.ExpressionFactory‘
java·开发语言·spring boot·tomcat·intellij-idea·个人开发
消失的旧时光-19431 小时前
智能指针(三):实现篇 —— shared_ptr 的内部设计与引用计数机制
java·c++·c·shared_ptr
REDcker1 小时前
FTP协议原理及应用精解
linux·后端·计算机网络·互联网·ftp·服务端开发
芒克芒克1 小时前
深入浅出CopyOnWriteArrayList
java
wuqingshun3141591 小时前
说一下java的反射机制
java·开发语言·jvm
A懿轩A1 小时前
【Java 基础编程】Java 异常处理保姆级教程:try-catch-finally、throw/throws、自定义异常
java·开发语言·python
极客先躯1 小时前
高级java每日一道面试题-2025年7月14日-基础篇[LangChain4j]-如何集成开源模型(如 Llama、Mistral)?需要什么基础设施?
java·langchain·存储·计算资源·模型服务框架·网络 / 协议·java 依赖
@syh.2 小时前
【linux】进程信号
linux
黎雁·泠崖2 小时前
Java 包装类:基本类型与引用类型的桥梁详解
java·开发语言
funnycoffee1232 小时前
Linux查看版本号命令cat /etc/os-release
linux·服务器