Https_Tomcat伺服器端配置
配置方法:
1. 第一步:為伺服器產生認證
使用keytool為Tomcat產生認證,假定目標機器的網域名稱是“localhost”,keystore檔案存放在“E:\tomcat.keystore”,使用如下命令產生:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore
安裝提示輸入使用者名稱,組織,地區,國家等,即可正確產生,該步為伺服器產生了認證。單向認證的話,到這一步即可。但是這樣產生的認證,因為沒有經過專門的CA認證,瀏覽器訪問時,會彈出警告。
2. 第二步:修改https配置
開啟tomcat/conf目錄下的server.xml檔案並找到關於ssl的相關段,去掉注釋,添加
keystoreFile="E:/tomcat.keystore" keystorePass="123123"
truststoreFile="E:/tomcat.keystore"truststorePass="123123"
兩段代碼,keystorePass的值為前面設定的密碼。
修改後的配置如下 :
<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https"secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:/tomcat.keystore"keystorePass="123123"
truststoreFile="E:/tomcat.keystore"truststorePass="123123" />
說明:其中,clientAuth指定是否需要驗證用戶端認證,如果該設定為“false”,則為單向SSL驗證,SSL配置可到此結束。如果clientAuth設定為“true”,表示強制雙向SSL驗證 ,必須驗證用戶端認證。如果clientAuth設定為“want”,則表示可以驗證用戶端認證,但如果用戶端沒有有效認證,也不強制驗證。 true是 伺服器不會頒發認證必須由用戶端匯入 。重啟伺服器,輸入url:https://localhost/可看到tomcat歡迎頁面,即為成功。
3. 第三步:強制https訪問
在tomcat\conf\web.xml中的</welcome-file-list>後面加上這樣一段:
<login-config>
<!--Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>ClientCert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!--Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
完成以上步驟後,在瀏覽器中輸入http的訪問地址也會自動轉換為https了。
4. 第四步:將APR library注釋掉
將tomcat\conf\service.xml中
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />注釋掉。
以上步驟完成後重啟Tomcat,HTTPS即設定成功。