天天看點

Jetty ssl配置

以前接手到這樣一個需求:

有一個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檔案建立密碼

Jetty ssl配置

這裡設定為123456,記住這個密碼,因為後面導入keystore時需要用到

第二步:利用Portecle建立keystore檔案

建立一個JKS類型的keystore

Jetty ssl配置
Jetty ssl配置

第三步:在keystore中導入第一步生成的p12檔案

Jetty ssl配置
Jetty ssl配置
Jetty ssl配置
Jetty ssl配置
Jetty ssl配置

最後就能看到keystore裡面導入了Alias Name叫jetty的鑰匙對

Jetty ssl配置

第四步:儲存keystore檔案

Jetty ssl配置
Jetty ssl配置

最後一步:

1.把keystore檔案複制到jetty的etc檔案夾去

2.配置jetty-ssl.xml檔案

配置3個地方,一個是指定keystore檔案路徑,第二個是設定keystore的密碼(123),第三個是設定keystore裡面keypair的密碼(123456)

Jetty ssl配置

3.激活jetty-ssl.xml檔案

在jetty的根目錄下找到start.ini檔案,把 "etc/jetty-ssl.xml"前面的#給去掉

Jetty ssl配置

然後重新開機jetty就大功告成!