在工做中遇到一個要將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