以前接手到這樣一個需求:
有一個apache使用的ssl證書,需要把該證書放置到jetty上使用,下面就把這過程記錄下來,以備以後使用
過程中涉及到Keytool、Keystore和Portecle工具的概念,下面先做一下準備
Keytool和Keystore概念:
Keytool 是一個有效的安全鑰匙和證書的管理工具.
Java 中的 keytool.exe(位于JDK\Bin目錄下)可以用來建立數字證書,所有的數字證書是以一條一條(采用别名差別) 的形式存入證書庫的中,證書庫中的一條證書包含該條證書的私鑰,公鑰和對應的數字證書的資訊。證書庫中的一條證書可以導出數字證書檔案,數字證書檔案隻包括主體資訊和對應的公鑰。
Keytool 把鑰匙和證書儲存到一個 keystore. 默任的實作 keystore 的是一個檔案 . 它用一個密碼保護鑰匙 .
Portecle工具:
Portecle 是一個圖形化界面的 JDK 中的指令行工具 keytool,可生成各種不同類型的密鑰庫,生成并存儲相關的X.509證書、生成 CSRs、導入和儲存信任的證書并進行維護。
附上下載下傳位址:http://download.csdn.net/detail/lzw_2006/7482933
下面正式開始導入
目前我們手上有 server.crt 證書 以及 對應的私鑰 server.key
第一步:将crt檔案和key檔案儲存到p12 key pair中
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name jetty
其中 -name是這個鑰匙對檔案的别名,在Keystore裡面需要這樣的一個别名來區分鑰匙對
接下來他會提示使用者為這個p12檔案建立密碼

這裡設定為123456,記住這個密碼,因為後面導入keystore時需要用到
第二步:利用Portecle建立keystore檔案
建立一個JKS類型的keystore
第三步:在keystore中導入第一步生成的p12檔案
最後就能看到keystore裡面導入了Alias Name叫jetty的鑰匙對
第四步:儲存keystore檔案
最後一步:
1.把keystore檔案複制到jetty的etc檔案夾去
2.配置jetty-ssl.xml檔案
配置3個地方,一個是指定keystore檔案路徑,第二個是設定keystore的密碼(123),第三個是設定keystore裡面keypair的密碼(123456)
3.激活jetty-ssl.xml檔案
在jetty的根目錄下找到start.ini檔案,把 "etc/jetty-ssl.xml"前面的#給去掉
然後重新開機jetty就大功告成!