SSL证书格式详解与转换

2018 年 9 月 20 日 运维帮

转自:http://www.ttlsa.com/safe/ssl-certificate-format-and-conversion/


一般来说,主流的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。


  1. Tomcat、Weblogic、JBoss 等 Web 服务软件,一般使用 Java 提供的密码库。通过 Java Development Kit (JDK)工具包中的 Keytool 工具,生成 Java Keystore(JKS)格式的证书文件。

  2. Apache、Nginx 等 Web 服务软件,一般使用 OpenSSL 工具提供的密码库,生成 PEM、KEY、CRT 等格式的证书文件。

  3. IBM 的 Web 服务产品,如 Websphere、IBM Http Server(IHS)等,一般使用 IBM 产品自带的 iKeyman 工具,生成 KDB 格式的证书文件。

  4. 微软 Windows Server 中的 Internet Information Services(IIS)服务,使用 Windows 自带的证书库生成 PFX 格式的证书文件。


判断证书文件是文本格式还是二进制格式


  1. *.DER 或 *.CER 文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

  2. *.CRT 文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 *.DER 及 *.CER 证书文件相同。

  3. *.PEM 文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 *.PEM 文件如果只包含私钥,一般用 *.KEY 文件代替。

  4. *.PFX 或 *.P12 文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。


也可以使用记事本直接打开证书文件。如果显示的是规则的数字字母,例如:



那么,该证书文件是文本格式的。


如果存在——BEGIN CERTIFICATE——,则说明这是一个证书文件。


如果存在—–BEGIN RSA PRIVATE KEY—–,则说明这是一个私钥文件。


证书格式转换


以下证书格式之间是可以互相转换的。


可使用以下方式实现证书格式之间的转换:


1. 将 JKS 格式证书转换成 PFX 格式

使用 JDK 中自带的 Keytool 工具,将 JKS 格式证书文件转换成 PFX 格式。


例如,可以执行以下命令将 server.jks 证书文件转换成 server.pfx 证书文件:


keytool -importkeystore -srckeystore D:\server.jks -destkeystore D:\server.pfx -srcstoretype JKS -deststoretype PKCS12


2. 将 PFX 格式证书转换为 JKS 格式

使用 JDK 中自带的 Keytool 工具,将 PFX 格式证书文件转换成 JKS 格式。


例如,可以执行以下命令将 server.pfx 证书文件转换成 server.jks 证书文件:


keytool -importkeystore -srckeystore D:\server.pfx -destkeystore D:\server.jks -srcstoretype PKCS12 -deststoretype JKS


3. 将 PEM/KEY/CRT 格式证书转换为 PFX 格式

可以使用 OpenSSL工具,将 KEY 格式密钥文件和 CRT 格式公钥文件转换成 PFX 格式证书文件。


例如,将 KEY 格式密钥文件(server.key)和 CRT 格式公钥文件(server.crt)拷贝至 OpenSSL 工具安装目录,使用 OpenSSL 工具执行以下命令将证书转换成 server.pfx证书文件:


openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt


4. 将PFX转换为PEM/KEY/CRT

可以使用 OpenSSL工具,将 PFX 格式证书文件转化为 KEY 格式密钥文件和 CRT 格式公钥文件。


例如,将 PFX 格式证书文件拷贝至 OpenSSL 安装目录,使用 OpenSSL 工具执行以下命令将证书转换成 server.pem 证书文件、KEY 格式密钥文件(server.key)和 CRT 格式公钥文件(server.crt):


openssl pkcs12 -in server.pfx -nodes -out server.pem

openssl rsa -in server.pem -out server.key

openssl x509 -in server.pem -out server.crt


此转换步骤是专用于通过 Keytool 工具生成私钥和 CSR 申请证书文件的,并且通过此方法可以在获取到 PEM 格式证书公钥的情况下分离私钥。在实际部署数字证书时,请使用通过此转换步骤分离出来的私钥和申请得到的公钥证书匹配进行部署。


登录查看更多
0

相关内容

【实用书】Python技术手册,第三版767页pdf
专知会员服务
237+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
164+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
120+阅读 · 2020年5月10日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
21+阅读 · 2019年12月31日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
36+阅读 · 2019年12月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
【ICIP2019教程-NVIDIA】图像到图像转换,附7份PPT下载
专知会员服务
55+阅读 · 2019年11月20日
AWVS12 V12.0.190530102 windows正式版完美破解版
黑白之道
29+阅读 · 2019年8月24日
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
还在PS里手动描边?AI自动抠图只需5秒
机器之心
12+阅读 · 2018年12月19日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
【强烈推荐】浅谈将Pytorch模型从CPU转换成GPU
机器学习研究会
7+阅读 · 2017年12月24日
Arxiv
8+阅读 · 2019年3月21日
Conditional BERT Contextual Augmentation
Arxiv
8+阅读 · 2018年12月17日
Semantics of Data Mining Services in Cloud Computing
Arxiv
4+阅读 · 2018年10月5日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Arxiv
3+阅读 · 2018年2月12日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关VIP内容
【实用书】Python技术手册,第三版767页pdf
专知会员服务
237+阅读 · 2020年5月21日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
164+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
120+阅读 · 2020年5月10日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
21+阅读 · 2019年12月31日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
36+阅读 · 2019年12月15日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
96+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
【ICIP2019教程-NVIDIA】图像到图像转换,附7份PPT下载
专知会员服务
55+阅读 · 2019年11月20日
相关资讯
AWVS12 V12.0.190530102 windows正式版完美破解版
黑白之道
29+阅读 · 2019年8月24日
告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
程序人生
6+阅读 · 2019年7月11日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
还在PS里手动描边?AI自动抠图只需5秒
机器之心
12+阅读 · 2018年12月19日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
【强烈推荐】浅谈将Pytorch模型从CPU转换成GPU
机器学习研究会
7+阅读 · 2017年12月24日
Top
微信扫码咨询专知VIP会员