一、 生成證書請求
1. 安裝JDK
安裝Tomcat需要JDK支持。如果您還沒有JDK的安裝,則可以參考
Java SE Development Kit (JDK) 下載。下載地址:
http://java.sun.com/javase/downloads/index.jsp
2. 生成keystore文件
生成密鑰庫文件keystore.jks需要使用JDK的keytool工具。命令行進入JDK下的bin目錄,運行keytool命令。(示例中粗體部分為可自定義部分,請根據實際配置情況作相應調整)
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks -storepass password
以上命令中,server為私鑰別名(-alias),生成的keystore.jks文件默認放在命令行當前路徑下。
3. 生成證書請求文件(CSR)
Keytool -certreq -alias server -sigalg MD5withRSA -file certreq.csr -keystore keystore.jks -keypass password -storepass password
備份密鑰庫文件keystore.jks,并稍后提交證書請求文件certreq.csr,等待證書簽發。
二、 導入服務器證書
1. 獲取EV服務器證書中級CA證書
為保障EV服務器證書在IE7以下客戶端的兼容性,EV服務器證書需要安裝兩張中級CA證書。
從郵件中獲取中級CA證書:
將證書簽發郵件中的從BEGIN到 END結束的兩張中級CA證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)分別粘貼到記事本等文本編輯器中,并修改文件擴展名,保存為intermediate1.cer和intermediate2.cer文件。
2. 獲取EV服務器證書
將證書簽發郵件中的從BEGIN到 END結束的服務器證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到記事本等文本編輯器中,并修改文件擴展名,保存為server.cer文件
3. 查看Keystore文件內容
進入JDK安裝目錄下的bin目錄,運行keytool命令。
keytool -list -keystore C:\keystore.jks -storepass password(您的keystore密碼)
查詢到PrivateKeyEntry屬性的私鑰別名(alias)為server。記住該別名,在稍后導入服務器證書時需要用到。(示例中粗體部分為可自定義部分,請根據實際配置情況作相應調整。)
注意,導入證書時,一定要使用生成證書請求文件時生成的keystore.jks文件。keystore.jks文件丟失或生成新的keystore.jks文件,都將無法正確導入您的服務器證書。
4. 導入證書
導入第一張中級CA證書
keytool -import -alias intermediate1 -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\intermediate1.cer
導入第二張中級CA證書
keytool -import -alias intermediate2 -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\intermediate2.cer
導入服務器證書
keytool -import -alias server -keystore C:\keystore.jks -trustcacerts -storepass password -file C:\server.cer(私鑰的別名)
導入服務器證書時,服務器證書的別名必須和私鑰別名一致。請留意導入中級CA證書和導入服務器證書時的提示信息,如果您在導入服務器證書時使用的別名與私鑰別名不一致,將提示“認證已添加至keystore中”而不是應有的“認證回復已安裝在keystore中”。
證書導入完成,運行keystool命令,再次查看keystore文件內容
keytool -list -keystore C:\keystore.jks -storepass password
三、 安裝服務器證書
1. 單向認證的配置
復制已正確導入認證回復的keystore.jks文件到Tomcat安裝目錄下的conf目錄。打開conf目錄下的server.xml文件,找到并修改以下內容
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
修改為
port="443" SSLEnabled="true"(SSL訪問端口)
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf\keystore.jks" keystorePass="password"
clientAuth="false" sslProtocol="TLS" />
默認的SSL訪問端口號為443,如果使用其他端口號,則您需要使用https://yourdomain:port的方式來訪問您的站點。
2. 雙向認證的配置
配置雙向認證時,您還需要指定客戶端認證的信任庫文件。客戶端認證信任庫文件(truststoreFile)可以和服務器證書密鑰庫文件(keystoreFile)為同一個文件,也可以進行獨立配置。
示例中使用相同的密鑰庫文件。您需要首先將客戶端認證的根證書以及中級CA證書導入到客戶端認證信任庫。
port="443" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf\keystore.jks" keystorePass="password"
truststoreFile="conf\keystore.jks" truststorePass="password"
clientAuth="true" sslProtocol="TLS" />
3. 訪問測試
重啟Tomcat,訪問https://youdomain:port,測試證書的安裝。
四、 服務器證書的備份及恢復
在您成功的安裝和配置了服務器證書之后,請務必依據下面的操作流程,備份好您的服務器證書,以防證書丟失給您帶來不便。
1. 服務器證書的備份
備份服務器證書密鑰庫文件keystore.jks文件即可完成服務器證書的備份操作。
2. 服務器證書的恢復
請參照服務器證書安裝部分,將服務器證書密鑰庫keystore.jks文件恢復到您的服務器上,并修改配置文件,恢復服務器證書的應用。