2010-09-16 70 views

回答

22

keytool直接提取證書是相當容易的,提取私鑰有點麻煩(儘管你可以編寫程序來這樣做)。我建議使用keytoolopenssl的組合。

如果您的密鑰庫採用PKCS#12格式(.p12文件),請跳過此步驟。將您的JKS庫到使用keytool一個PKCS12商店(需要從Java版本6+)

keytool -importkeystore -srckeystore thekeystore.jks \ 
         -srcstoretype JKS \ 
         -destkeystore thekeystore.p12 \ 
         -deststoretype PKCS12 

然後,提取證書使用OpenSSL:已

openssl pkcs12 -in thekeystore.p12 -clcerts -nokeys -out servercert.pem 

提取私鑰:

umask 0077 
openssl pkcs12 -in thekeystore.p12 -nocerts -nodes -out serverkey.pem 
umask 0022 

請注意,因爲在提取私鑰時使用了-nodes選項,所以私鑰文件將不受保護(因爲它不得有密碼才能成爲我們的用戶)可以通過Apache Httpd),所以確保沒有其他人可以閱讀它。

然後,分別使用SSLCertificateFileSSLCertificateKeyFile配置Apache Httpd以分別指向證書文件和私鑰文件。

+0

-srsstoretype應該是-scrstoretype – jramoyo 2013-08-06 06:40:46

+0

@jramoyo,謝謝你發現這個錯字。 (您可能也可以直接建議編輯。) – Bruno 2013-08-06 06:56:18

+0

不幸的是servercert.pem爲空(0字節)。任何提示? – 2015-04-17 12:45:22