0.背景
pfx證書含公私鑰,cer證書為公鑰,想從pfx證書中導出其對應的公鑰cer.
1.操作
需要借助openssl pkcs12
,linux服務器上一般都自帶了.
openssl pkcs12 -nodes -nokeys -in decrypt.pfx -passin pass:證書密碼 -nokeys -out 輸出的名字.cer
openssl pkcs12 -nodes -nokeys -in sign.pfx -passin pass:證書密碼 -nokeys -out 輸出的名字.cer
2.擴展
-in filename:指定私鑰和證書讀取的文件,默認為標准輸入。必須為PEM格式。
-out filename:指定輸出的pkcs12文件,默認為標准輸出。
-password arg:指定導入導出口令來源。
-passin arg:輸入文件保護口令來源。
-passout arg:指定所有輸出私鑰保護口令來源。
-noout:不打印參數編碼的版本信息。
-clcerts:僅僅輸出客戶端證書,不輸出CA證書。
-cacerts:僅僅輸出CA證書,不輸出客戶端證書。
-nocerts:不輸出任何證書。
-nokeys:不輸出任何私鑰信息值。
-info:輸出PKCS#12文件結構的附加信息值。例如用的算法信息以及迭代次數。
-des:在輸出之前用DES算法加密私鑰值。
-des3:在輸出之前用3DES算法加密私鑰值。此項為默認。
-idea:在輸出之前用IDEA算法加密私鑰值。
-aes128、-aes192、-aes256:在輸出之前用AES算法加密私鑰值。
-camellia128、-camellia192、-camellia256:在輸出之前用camellia算法加密私鑰值。
-nodes:一直對私鑰不加密。
-nomacver:讀取文件時不驗證MAC值的完整性。
-twopass:需要用戶分別指定MAC口令和加密口令。
文件創建選項:
-export:這個選項指定了一個PKCS#12文件將會被創建。
-in filename:指定私鑰和證書讀取的文件,默認為標准輸入。必須為PEM格式。
-out filename:指定輸出的pkcs12文件,默認為標准輸出。
-inkey filename:指定私鑰文件的位置。如果沒有被指定,私鑰必須在-in filename中指定。
-name name:指定證書以及私鑰的友好名字。當用軟件導入這個文件時,這個名字將被顯示出來。
-certfilefilename:添加filename中所有的證書信息值。
-caname name:指定其它證書的友好名字。這個選項可以被用於多次。
-password arg:指定導入導出口令來源。
-passin arg:輸入文件保護口令來源。
-passout arg:指定所有輸出私鑰保護口令來源。
-chain:如果這個選項被提出,則添加用戶證書的證書鏈。標准CA中心用它來搜索。如果搜索失敗,則是一個重大的錯誤。
-descert:用3DES對PKCS12進行加密,這樣楊浦可能會導致PKCS12文件被一些“export grade”軟件不能夠讀取。默認的是用3DES對私鑰文件進行加密,用40位的RC2對證書公鑰文件進行加密。
-certpbealg:該選項允許指定證書的加密算法。任何PKCS#5 v1.5或 PKCS#12 PBE類型的算法都可以被使用。默認使用的是40位的RC2。
-keypbe alg:該選項允許指定證書私鑰的加密算法。任何PKCS#5 v1.5或 PKCS#12 PBE類型的算法都可以被使用。默認使用的是3DES。
-keyex:設置私鑰僅僅被用於密鑰交換。
-keysig:設置私鑰僅僅被用於數字簽名。
-macalg digest:指定MAC摘要算法。如果沒有被指定,則默認使用sha1。
-nomaciter、-noiter:這個選項影響MAC值和密鑰算法的迭代次數。除非你希望產生的文件能與MSIE 4.0相兼容,可以把這兩個選項丟棄一邊。
-maciter:加強完整性保護,多次計算MAC。
-nomac:不去規定MAC值的完整性。
-rand file(s):指定隨機數種子文件,多個文件間用分隔符分開,windows用“;”,OpenVMS用“,“,其他系統用“:”。
-CApatharg:指定CA目錄。該目錄必須是一個標准證書目錄:每個CA文件的文件名為XXXX.0,XXXX為其持有者摘要值。
-CAfile arg:指定CA文件。
-LMK:添加本地的機械屬性到私鑰中。
-CSP name:微軟的CSP的名字。
-engine id:指定硬件引擎。