【产品技术】唠唠主流数字证书

举报
懒宅君 发表于 2020/06/29 16:04:38 2020/06/29
【摘要】 主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。· Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit(JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。· Apache、Nginx等Web服务软件,一般使用OpenS...

主流的Web服务软件,通常都基于OpenSSLJava两种基础密码库。

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

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

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

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


可以使用以下方法简单区分带有后缀扩展名的证书文件:

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

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

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

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

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

比如:

—–BEGIN CERTIFICATE—–

MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......

—–END CERTIFICATE—–

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

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

证书格式之间是可以互相转换的,如下图所示。

image.png

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

·       将JKS格式证书转换为PFX格式

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

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

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

·       将PFX格式证书转换为JKS格式

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

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

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

·       将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

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

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

image.png

比如将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


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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。