Tomcat SSL 憑證產生教學
Posted on September 4th, 2014
Step1. 建立 private key金鑰
C:\j2sdk1.4.2_05\bin>keytool -genkey -alias mykey( 別名 :可自設) -validity 720( 效期 ) -keyalg RSA -keysize 1024 -keystore tomcat.keystore(產出的 keystore檔名) -storepass mypassword( 密碼自設 ) –keypass mypassword(密碼自設)
Step 2. 輸入憑證資訊
一般名字與姓名會輸入該網站的 daman,若測試輸入localhost即可,其他資訊看客戶是否有要求,否則隨意填即可。
Step 3. 產出憑證要求的 CSR檔
C:\j2sdk1.4.2_05\bin>keytool -certreq -alias mykey(Step1 設定的別名 ) -file cert.csr(產出的csr 檔名 ) -keystore tomcat.keystore (Step1產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
匯出的憑證內容
Step 4. 匯入 CRE憑證檔
利用 CSR檔產回CRE 憑證檔進行匯入。
此時,請確認客戶產出 CRE檔的程式,是否有根憑證或中繼憑證,若有麻煩先匯入根憑證及中繼憑證,否則會無法匯入憑證。
方法 1: 根憑證及中繼憑證匯入Java Security ,再匯入產出的 CRE憑證檔
Step 4-1-1.匯入根憑證及中繼憑證
C:\j2sdk1.4.2_05\bin>keytool -import -trustcacerts -alias tomcat( 別名 :可自設) -file server.cer(根憑證、中繼憑證 ) -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit(jre預設密碼是 changeit)
Step 4-1-2.匯入產出的憑證
C:\j2sdk1.4.2_05\bin>keytool -import -trustcacerts -alias mykey(Step1 設定的別名 ) -file cert.cer(產出的憑證檔 ) -keystore tomcat.keystore(Step1產出的keystore 檔) -storepass mypassword(Step1 keystore密碼 )
方法 2:直接匯入keystore( 依信任關係,由最上層憑證,依序往下安裝 )
Step 4-2-1.匯入根憑證及中繼憑證
C:\j2sdk1.4.2_05\bin> keytool -import -alias mykey(別名 :可自設) -file server.cer(根憑證、中繼憑證 ) -keystore tomcat .keystore(Step1產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
Step 4-2-2.匯入產出的憑證
C:\j2sdk1.4.2_05\bin>keytool -import -trustcacerts -alias mykey(Step1 設定的別名 ) -file cert.cer(產出的憑證檔 ) -keystore tomcat.keystore(Step1產出的keystore 檔) -storepass mypassword(Step1 keystore密碼 )
匯入完成的訊息
Step 5.修改Tomcat server.xml 的設定
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Connector protocol="org.apache.coyote.http11.Http11Protocol" | |
port="443" | |
maxHttpHeaderSize="8192" | |
maxThreads="150" | |
minSpareThreads="25" | |
maxSpareThreads="75" | |
enableLookups="false" | |
disableUploadTimeout="true" | |
acceptCount="100" | |
scheme="https" | |
secure="true" | |
clientAuth="false" | |
sslProtocol="TLS" | |
keystoreFile="C:/....../ssl/test.key" | |
keystorePass="MY@PASSWORD" /> |
PS.
1.如果客戶是自己認證沒經過第三方大廠,匯入客戶的根憑證及中繼憑證是一定要的,不然匯不進去。
2.記得要改成 protocol="org.apache.coyote.http11.Http11Protocol"
,APR 的方式測試都不成功,等有人成功可以分享一下。
3.查詢keystore 資訊語法
keytool -list -keystore tomcat.keystore(Step1 產出的 keystore檔) -storepass mypassword(Step1 keystore密碼 )
感謝 Nick 教學