服務器證書安裝配置指南(Tomcat 6)
一、 生成證書請求
1. 安裝JDK
安裝Tomcat需要JDK支持。如果您還沒有JDK的安裝,則可以參考
Java SE Development Kit (JDK) 下載。下載地址:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
2. 生成keystore文件
生成密鑰庫文件keystore.jks需要使用JDK的keytool工具。命令行進入JDK或JRE下的bin目錄,運行keytool命令(示例中粗體部分為可自定義部分,請根據實際配置情況作相應調整)。
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore keystore.jks -storepasspassword -keypass
password
以上命令中,server為私鑰別名(-alias),生成的keystore.jks文件默認放在命令行當前路徑下。
3. 生成證書請求文件(CSR)
keytool -certreq -alias server -sigalg SHA1withRSA -file certreq.csr -keystore C:\keystore.jks -keypasspassword -storepass
password
備份密鑰庫文件keystore.jks,並稍後提交證書請求文件certreq.csr,等待證書簽發。密鑰庫文件keystore.jks丟失將導致證書不可用。
二、 導入服務器證書
1. 獲取服務器證書中級CA證書
為保障服務器證書在客戶端的兼容性,服務器證書需要安裝兩張中級CA證書(不同品牌證書,可能隻有一張中級證書)。
從郵件中獲取中級CA證書:
將證書簽發郵件中的從BEGIN到 END結束的兩張中級CA證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)分別粘貼到記事本等文本編輯器中,並修改文件擴展名,保存為intermediate1.cer和intermediate2.cer文件。
2. 獲取服務器證書
將證書簽發郵件中的從BEGIN到 END結束的服務器證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到記事本等文本編輯器中,並修改文件擴展名,保存為server.cer文件
3. 查看Keystore文件內容
進入JDK安裝目錄下的bin目錄,運行keytool命令。
keytool -list -keystore keystore.jks -storepass
password
查詢到PrivateKeyEntry屬性的私鑰別名(alias)為server。記住該別名,在稍後導入服務器證書時需要用到(示例中粗體部分為可自定義部分,請根據實際配置情況作相應調整)。
注意,導入證書時,一定要使用生成證書請求文件時生成的keystore.jks文件。keystore.jks文件丟失或生成新的keystore.jks文件,都將無法正確導入您的服務器證書。
4. 導入證書(如果隻有一張中級證書,則隻需要導入一張中級證書)
導入第一張中級CA證書
keytool -import -alias intermediate1 -keystore keystore.jks -trustcacerts -storepasspassword -file intermediate1.cer
導入第二張中級CA證書
keytool -import -alias intermediate2 -keystore keystore.jks -trustcacerts -storepasspassword -file intermediate2.cer
導入服務器證書
keytool -import -alias server -keystore C:\keystore.jks -trustcacerts -storepasspassword -file server.cer
導入服務器證書時,服務器證書的別名必須和私鑰別名一致。請留意導入中級CA證書和導入服務器證書時的提示信息,如果您在導入服務器證書時使用的別名與私鑰別名不一致,將提示“認證已添加至keystore中”而不是應有的“認證回複已安裝在keystore中”。
證書導入完成,運行keystool命令,再次查看keystore文件內容
keytool -list -keystore keystore.jks -storepass
password
三、 安裝服務器證書
1. 單向認證的配置
複製已正確導入認證回複的keystore.jks文件到Tomcat安裝目錄下的conf目錄。打開conf目錄下的server.xml文件,找到並修改以下內容
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
SSL訪問端口
-->
修改為
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
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證書導入到客戶端認證信任庫。
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" 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,測試證書的安裝。
Linux 操作一樣步驟一樣。
最後更新:2017-04-03 12:56:18