在工做中遇到一个要将pfx格式的的证书转换为cer格式的需求,原有的作法是将pfx格式的证书先倒入到浏览器中,而后再由浏览器导出,可是这样对于批量操做来讲效率太慢,看了一下,能够使用OpenSSL自带的命令完成这个需求。html
OpenSSL下载:(Windows)node
http://dl.pconline.com.cn/download/355862.html shell
安装好OpenSSL,而后到bin目录下,执行如下命令便可完成转换:浏览器
openssl pkcs12 -nodes -nokeys -in 1.pfx -passin pass:证书密码 -out 1.cer加密
如无需加密pem中私钥,能够添加选项-nodes;spa
如无需导出私钥,能够添加选项-nokeys;code
若是提示:“WARNING: CAN’T OPEN CONFIG FILE: /USR/LOCAL/SSL/OPENSSL.CNF”,htm
输入“set OPENSSL_CONF=openssl.cfg”。ssl
附一个批量转换的batget
先安装openssl,pfx文件和密码文件须要同样,例如:
证书.pfx
证书.txt(密码文件)
@echo off&setlocal enabledelayedexpansion set /p mulu=请将pfx所放文件夹拖进本窗口: set openssl=C:\OpenSSL-Win32\bin\ cls for /r %mulu% %%i in (*.pfx) do ( set pfxname=%%~ni set fname=%%i set passfile=!fname:~0,-4!.txt echo !pfxname! ::echo !passfile! set /p pass=<!passfile! ::echo !pass! set OPENSSL_CONF=%openssl%openssl.cfg %openssl%openssl pkcs12 -nodes -nokeys -in !fname:~0,-4!.pfx -passin pass:!pass! -out !fname:~0,-4!.cer ) echo 转换完毕.! pause>nul