轉自 http://www.itrus.cn/service_view_79.html
- 安裝JDK 安裝Tomcat需要JDK支持。
JDK1.6默認只支持 SSLv3 和 TLSv1 兩個版本的https協議,JDK 1.7 版本默認禁用SSLv3,并支持 TLSv1、TLSv1.1及TLSv1.2。Tomcat 6及以下版本在使用 JDK 1.6及以下版本的運行環境時,可能存在無法禁用 SSLv3的情況。此時建議您升級 Tomcat 及 JDK版本,或變更使用 APR模塊來配置SSL證書,以確保安全方式安裝及使用服務器證書。Java SE Development Kit (JDK) 下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 生成keystore文件生成密鑰庫文件keystore.jks需要使用JDK的keytool工具。命令行進入JDK或JRE下的bin目錄,運行keytool命令(示例中粗體部分為可自定義部分,可根據實際配置情況相應修改)。
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore D:\keystore.jks -storepass password -keypass password
以上命令中,server為私鑰別名(-alias),生成的keystore.jks文件默認放在D盤根目錄下。
- 生成證書請求文件(CSR)
keytool -certreq -alias server -sigalg SHA256withRSA -file D:\certreq.csr -keystore D:\keystore.jks -keypass password -storepass password
請備份密鑰庫文件keystore.jks,并稍后提交證書請求文件certreq.csr,等待證書簽發。密鑰庫文件keystore.jks丟失將導致證書不可用。
二、 導入服務器證書
獲取服務器證書
將證書簽發郵件中的從BEGIN到 END結束的服務器證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到記事本等文本編輯器中,并修改文件擴展名,保存為server.cer文件獲取CA證書
將證書簽發郵件中的從BEGIN到 END結束的兩張 CA證書 內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)分別粘貼到記事本等文本編輯器中,并修改文件擴展名,保存為ca1.ce r和 ca2.cer文件。
- 查看keystore文件內容
進入JDK安裝目錄下的bin目錄,運行keytool命令查詢keystore文件信息。
keytool -list -keystore D:\keystore.jks -storepass password
查詢到PrivateKeyEntry(或KeyEntry)屬性的私鑰別名(alias)為server。記住該別名,在稍后導入服務器證書時需要用到(示例中粗體部分為可自定義部分,可根據實際配置情況相應修改)。
注意,導入證書時,一定要使用生成證書請求文件時生成的keystore.jks文件。keystore.jks文件丟失或生成新的keystore.jks文件,都將無法正確導入您的服務器證書。
- 導入證書(如果只有一張CA證書,則只需要導入一張CA證書)
導入第一張中級CA證書
keytool -import -alias ca1 -keystore D:\keystore.jks -trustcacerts -storepass password -file D:\ca1.cer -noprompt
導入第二張中級CA證書
keytool -import -alias ca2 -keystore D:\keystore.jks -trustcacerts -storepass password -file D:\ca2.cer -noprompt
導入服務器證書
keytool -import -alias server -keystore D:\keystore.jks -trustcacerts -storepass password -keypass password -file D:\server.cer
導入服務器證書時,服務器證書的別名必須和私鑰別名一致。請留意導入中級CA證書和導入服務器證書時的提示信息,如果您在導入服務器證書時使用的別名與私鑰別名不一致,將提示“認證已添加至keystore中”而不是應有的“認證回復已安裝在keystore中”。
證書導入完成,運行keystool命令,再次查看keystore文件內容
keytool -list -keystore D:\keystore.jks -storepass password
三、 安裝服務器證書
- 配置Tomcat
復制已正確導入認證回復的keystore.jks文件到Tomcat安裝目錄下的conf目錄。打開conf目錄下的server.xml文件,找到并修改以下內容
<!—
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
修改為
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="443" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf\keystore.jks" keystorePass="password"
clientAuth="false" sslProtocol="TLS"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256" />
默認的SSL訪問端口號為443,如果使用其他端口號,則您需要使用https://yourdomain:port的方式來訪問您的站點。
- 訪問測試
重啟Tomcat,訪問https://youdomain:port,測試證書的安裝。
四、 服務器證書的備份及恢復
在您成功的安裝和配置了服務器證書之后,請務必依據下面的操作流程,備份好您的服務器證書,以防證書丟失給您帶來不便。
- 服務器證書的備份
備份服務器證書密鑰庫文件keystore.jks文件即可完成服務器證書的備份操作。 - 服務器證書的恢復
請參照服務器證書安裝部分,將服務器證書密鑰庫keystore.jks文件恢復到您的服務器上,并修改配置文件,恢復服務器證書的應用。