利用Openssl进行SSL证书格式转换


各类证书由于存储的内容不同(如是否包含公钥/私钥是否加密存储/单一证书或多证书等)、采用编码不同(DER/BASE64)、标准不同(如PEM/PKCS),所以尽管X.509标准规定了证书内容规范,但证书文件还是五花八门。 在实际应用中经常会要求进行证书格式转化,比如在配置VMware Operation Manager 和Identity Manager等Linux场景下的证书服务器时要求使用的是PEM编码格式的证书,但是很多人手上只有CER格式的证书。好在openssl对这些不同的标准都有着不错的支持,可以用来进行不同格式证书的转换。本文章将会以Identity Manager场景下的SSL格式转换为例进行演示讲解本环境中将会有企业内的CA证书颁发机构为其进行证书颁发,所以获取的证书格式为Windows易于识别的Cer或者pfx格式。首先我们将该证书导出对于本环境的Identity Manager需要用到私钥,故此选择导出私钥注:一般情况下需要用到pem格式的证书都需要导出和识别证书勾选导出私钥后,文件格式只能选择pfx设置密码选择导出路径导出完成同时我们也要导出企业的根证书颁发机构的证书进行导出根证书选择不导出私钥。注:将根证书颁发机构的证书导出是一件很危险的事情证书格式我们选择“base64编码”导出完成至此我们已经获得一个服务器证书以及一个对应的根证书颁发机构的证书,接下来就可以通过openssl进行证书格式转换。在安装openssl前,请先在系统中安装 Microsoft Visual C++ 2008 Redistributable Package (x86)。要下载软件包,(下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=29)下载适用于OpenSSL x86 的 Shining Light Productions 安装程序,,下载网址为 Shining Light Productions。这是 OpenSSL Project 开发的软件。下载完成后点击安装,默认情况下其会安装在C盘根目录通过cmd进入安装目录的bin目录首先将pfx格式转换为pem格式并通过以下命令将上述导出的证书转换成pem格式(不含私钥)openssl pkcs12 -in c:idm.pfx -clcerts -nokeys -out c:idm.pem(上述命令就是通过openssl将idm.pfx这个pkcs12格式的证书转换成pem格式,其中-nokeys为指定如无需导出私钥,命令中需要根据自己情况制定具体的证书位置)接着通过命令将私钥也转换成pem格式,并且在转换输出过程中要求输入密码openssl pkcs12 -in c:idm.pfx -nocerts -out c:idm.key.pem(-nocerts为控制不转换证书 只转换私钥)最后再通过命令将这个pem格式的私钥转换成rsa打开C盘 可以看到其已经生成一个pem格式的证书以及pem格式的私钥最后也要将根证书转换成pem格式也就是实现从CER格式转化为PEM的过程命令如下openssl.exe x509 -in c:rootca.cer -out c:rootca.pem
当然openssl除了可以实现pfx以及Cer向pem格式转换外免费云主机域名, 还支持很多其他格式的转换,基本参考如下:PEM–DER/CER(BASE64–DER编码的转换) openssl x509 -outform der -in certificate.pem -out certificate.derEM–P7B(PEM–PKCS#7) openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cerPEM–PFX(PEM–PKCS#12) openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crtPEM–p12(PEM–PKCS#12) openssl pkcs12 -export -out Cert.p12 -in Cert.pem -inkey key.pemCER/DER–PEM(编码DER–BASE64) openssl x509 -inform der -in certificate.cer -out certificate.pemP7B–PEM(PKCS#7–PEM) openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cerP7B–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.cerPFX/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.pemPFX文件中提取私钥(.key) openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.keyPEM–SPC openssl crl2pkcs7 -nocrl -certfile venus.pem -outform DER -out venus.spcPEM--PVK(openssl 1.x开始支持) openssl rsa -in mycert.pem -outform PVK -pvk-strong -out mypvk.pvkPEM--PVK(对于openssl 1.x之前的版本,可以下载PVK转换器通过以下命令完成) pvk -in ca.key -out ca.pvk -nocrypt -topvk

相关推荐: 修改数据信息时,判断复选框的值是否被选中

用函数in_array():判断数据是否在数组中;将要获取某个复选框字段的数据时,格式:1,2,3,5 然后在页面直接判断这个复选框的免费云主机域名某个值是否在这个数组里面;当时是在TP框架里面做的:第一个参数就是对应这个value里面的值,后面的参数是该用户…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 01/26 10:52
Next 01/26 10:52