1. 程式人生 > >Windows下用openssl命令製作生成證書和自簽名

Windows下用openssl命令製作生成證書和自簽名

這些天領導讓我把web service 由原來的HTTP協議改用加密並且加上客戶認證,系統原本用的gsoap,沒辦法只好調查了,現在總結了一些有關openssl生產證書的步驟:

1、 新建工作目錄,將openssl安裝路徑下的apps/CA.pl 和 apps/openssl.cnf(在window中該檔案會顯示成名為openssl的快速撥號程式)檔案複製到該路徑。可以修改openssl.cnf檔案中的一些引數。啟動控制檯,執行命令

CA.pl -newca


2、 生成根證書和對應的私鑰
openssl req -new -x509 -keyout cakey.pem -out cacert.pem -config openssl.cnf


記住輸入的pass phrase、國家、省、組織等引數,不能全為空。將生成的cakey.pem放到demoCA/private目錄下,將cacert.pem放到demoCA目錄下。


注意:在window下需要openssl命令都需要增加-config openssl.cnf引數,防止因找不到配置檔案而報錯。Linux下不需要該引數。

3、 生成服務證書私鑰和證書請求檔案
openssl req -newkey rsa:2048 -out newCSR.pem -keyout newKey.pem -config openssl.cnf
如果要生成多個證書私鑰對,注意輸入Common Name值要不同。如果不是自簽名,可將生成的證書請求檔案newCSR.pem交由相關組織簽發證書。



4、 用根證書籤發該服務證書
openssl ca -in newCSR.pem -out newCert.pem -config openssl.cnf

至此,我們生成了根證書和私鑰cakey.pem、cacert.pem。用於服務由根證書籤發了的證書newCert.pem和對應私鑰newKey.pem。openssl程式設計過程中,需要驗證newCert.pem和newKey.pem是否匹配。用根證書cacert.pem驗證newCert.pem是否可信。