tomcat配置http轉換https
配置tomcat實現http轉向https雙向認證
任務需求:原有的請求為非安全的http協議,通過tomcat相關配置實現http跳轉為更為安全的https進行訪問。
工具:tomcat,控制檯
步驟:
1.伺服器生成證書
通過控制檯跳轉到tomcat安裝目錄下,執行以下命令:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\key\tomcat.keystore -validity 36500
alias:證書別名;
Keystore:證書儲存位置;
Tomcat.keystore:生成的檔名字;
Validity:證書有限期。
回車執行後需要填寫以下問題:
A、輸入金鑰庫口令:自己設定;
B、“您的名字語姓氏是什麼?”:tomcat部署主機的域名,可以設定為127.0.0.1或其他。
後續幾個問題可以不填,直接回車到系統詢問填寫是否正確?輸入y,生成tomcat.keystore檔案。
2.客戶端生成證書
生成格式為PKCS12的瀏覽器證書,在控制檯輸入以下命令:
keytool -genkey-v –alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\key\mykey.p12
可以在相應位置找到mykey.p12檔案,直接雙擊執行此檔案,按照提示安裝證書,將證書填入到“受信任的根證書頒發機構”。
3.雙向認證
由於雙向認證是通過SSL,伺服器語客戶端必須互相信任證書,首先將客戶端證書匯出為CER檔案,在控制檯輸入以下命令:
keytool-export -alias mykey -keystore D:\key\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\key\mykey.cer
password為設定的密碼,回車即可在相應位置可以生成mykey.cer檔案,將該檔案匯入到伺服器的證書庫,在控制檯輸入以下命令:
keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore
keytool-export -alias client(客戶端證書別名) -keystore D:\key\client.p12 -storetype PKCS12 -storepass client(你的客戶端keystore密碼) -rfc-file D:\key\clientforserver.ce
再進行客戶端對伺服器證書的驗證,也將伺服器證書匯出為CER檔案,在控制檯輸入以下命令:
keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer
在相應位置也可以生成tomcat.cer檔案。安裝兩個生成的cer檔案,按照提示安裝證書檔案,將證書填入到“受信任的根證書頒發機構”。
4.配置tomcat
修改server.xml檔案,暫時不需要修改web.xml檔案(經測試)
開啟tomcat根目錄下的/conf/server.xml檔案,新增如下欄位:
<Connector keystoreFile="D:/key/tomcat.keystore(生成的keystore檔案)"
SSLEnabled="true" clientAuth="true"
keystorePass="密碼" maxThreads="150" port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
scheme="https" secure="true" sslProtocol="TLS"
truststoreFile="D:/key/tomcat.keystore(生成的keystore檔案)" truststorePass="設定的密碼"/>
5.測試
在tomcat7和tomcat8中測試,需要設定myeclipse(2015)中的server檔案,防止每次部署專案自動恢復server.xml檔案,直接修改下圖中的檔案即可。
測試結果如下圖:
在tomcat6中,暫時沒有發現myeclipse(8)自動恢復檔案的問題。
參考:http://blog.csdn.net/zhangyong125/article/details/49944683#comments