各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等)、采用编码不同(DER/BASE64)、标准不同(如PEM/PKCS),所以尽管X.509标准规定了证书内容规范,但证书文件还是五花八门。好在openssl对这些不同的标准都有着不错的支持,可以用来进行不同格式证书的转换。
大体来说,证书转换要作的工作有这么几种
编码转换:DER<-->BASE64
不同证书标准的转换:PKCS系列<-->PEM/CER
私钥的增/减/提取/转换
...
PEM--DER/CER(BASE64--DER编码的转换)
openssl x509 -outform der -in certificate.pem -out certificate.der
PEM--P7B(PEM--PKCS#7)
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
PEM--PFX(PEM--PKCS#12)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
PEM--p12(PEM--PKCS#12)
openssl pkcs12 -export -out Cert.p12 -in Cert.pem -inkey key.pem
CER/DER--PEM(编码DER--BASE64)
openssl x509 -inform der -in certificate.cer -out certificate.pem
P7B--PEM(PKCS#7--PEM)
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
P7B--PFX(PKCS#7--PKCS#12)
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
PFX/p12--PEM(PKCS#12--PEM)
openssl pkcs12 -in certificate.pfx -out certificate.cer
如无需加密pem中私钥,可以添加选项-nodes;
如无需导出私钥,可以添加选项-nokeys;
PEM BASE64--X.509文本格式
openssl x509 -in Key.pem -text -out Cert.pem
PFX文件中提取私钥(.key)
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
PEM--SPC
openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spc
PEM--PVK(openssl 1.x开始支持)
openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvk
PEM--PVK(对于openssl 1.x之前的版本,可以下载pvk转换器后通过以下命令完成)
pvk -in ca.key -out ca.pvk -nocrypt -topvk
PVK格式更多参考:http://www.drh-consultancy.demon.co.uk/pvk.html
openssl更多选项及功能,请参考openssl手册
相关推荐
在本文中,我们将探索使用 OpenSSL 命令进行 SSL 证书格式转换的方法。SSL 证书格式转换是网站管理员和开发者经常遇到的一个问题,无论是从商家购买的 SSL 证书还是自己免费获取的证书,都需要将其转换为适合服务器...
Window系统使用openssl将pfx转换为pem,key,crt 在本文中,我们将详细介绍如何使用 OpenSSL 工具将 PFX 文件转换为 PEM、KEY 和 CRT 文件。这三个文件类型都是 SSL/TLS 证书的重要组成部分,分别用于存储证书、私钥...
- OpenSSL工具的使用:生成私钥、CSR、签署证书和格式转换。 - Java运行系统命令:`Runtime.getRuntime().exec()`或`ProcessBuilder`。 - 安全考量:避免命令注入,可能使用Java内置库或第三方库进行证书管理。 - ...
2. **OpenSSL解析P12**:使用OpenSSL工具,如`openssl pkcs12`命令,我们可以对P12文件进行操作,例如提取公钥证书、私钥,或者将P12文件转换为其他格式如PEM或DER。解析过程通常涉及解密文件,这需要输入设置时的...
3. 运行OpenSSL命令进行转换:执行以下命令将CER证书转换为PEM格式: ``` openssl x509 -in certificate.cer -out certificate.pem -outform PEM ``` 在这个命令中: - `-in certificate.cer` 指定了输入的CER...
在实际应用中,证书通常会被转换成PEM或DER格式,以便于不同系统和软件使用。例如,将证书和私钥合并到一个文件中,方便部署: ```shell # 将服务器证书和私钥合并 cat server.crt server.key > server.pem # 将...
1. PEM与DER格式转换:PEM是Base64编码的ASCII文本格式,而DER是二进制格式。使用`openssl`命令可以互相转换: - DER转PEM:`openssl x509 -inform der -in certificate.der -out certificate.pem` - PEM转DER:`...
反之,可以使用 OpenSSL 将 PEM 格式转换为 DER 格式,命令为:`openssl x509 -inform PEM -in baidubase64.cer -outform DER -out bd.der` 6. 加密算法 使用 OpenSSL 可以查看服务器是否支持某个加密算法,命令为...
5. 将服务端证书和私钥转换为 PKCS12 格式:`openssl pkcs12 -export -in server.crt -inkey server.key -out server.pkcs12` 这将将服务端证书和私钥转换为 PKCS12 格式,用于 Java 应用程序。 使用 keytool 生成...
OpenSSL 生成 CA 证书 PKCS#12 PEM 格式转换 OpenSSL 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持 SSL/TLS 协议的实现。 OpenSSL 工具箱中包含了大量实用的命令和选项,...
3. **导出私钥**:有时你需要从证书中提取私钥,这可以通过`openssl pkcs12`命令实现,比如`openssl pkcs12 -in cert.p12 -out key.pem -nodes`,这将把PKCS12格式的文件转换成.pem格式,其中包含私钥。 4. **生成...
本文将围绕如何使用Jetty 5.1.10与OpenSSL进行SSL证书的自制来展开讨论。 首先,理解SSL(Secure Sockets Layer)是网络安全传输的基础,它为网络通信提供了加密处理,确保数据在网络传输过程中不被窃取或篡改。SSL...
5. 将密钥转换为16进制格式:使用以下命令将私钥和公钥转换为16进制格式: ``` openssl rsa -in private_key.pem -text -noout | grep 'modulus' -A 1 | awk '{print $2}' | xxd -p -c 1024 > private_key_hex.txt...
标题提到的"keystoke证书转换nginx证书工具"是一个帮助管理员处理SSL/TLS证书的实用程序,特别针对从Java的`keytool.exe`生成的`.keystore`格式证书进行转换。`keytool`是Java Development Kit (JDK) 自带的一个...
#### 五、转换证书格式 如果需要将生成的证书转换为P12格式,可以使用以下命令: ```bash openssl pkcs12 -export -clcerts -in certs/server.crt.pem -inkey private/serverkey.pem -out certs/server.p12 ``` #...
例如,当你需要使用OpenSSL进行加密或解密操作时,可能就需要将OpenSSH的公钥转换为OpenSSL兼容的格式。 转换过程如下: 1. **生成RSA密钥对**: 使用OpenSSL可以生成RSA密钥对,其中`genrsa`命令用于生成私钥,...