1. 程式人生 > >tomcat配置http轉換https

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.測試

tomcat7tomcat8中測試,需要設定myeclipse(2015)中的server檔案,防止每次部署專案自動恢復server.xml檔案,直接修改下圖中的檔案即可。


測試結果如下圖:

 

在tomcat6中,暫時沒有發現myeclipse(8)自動恢復檔案的問題。

 參考:http://blog.csdn.net/zhangyong125/article/details/49944683#comments