一. 建立tomcat證書web
這裏使用JDK自帶的keytool工具來生成證書apache
1. 在jdk的安裝目錄\bin\keytool.exe下打開keytool.exe瀏覽器
2. 在命令行中輸入如下命令:tomcat
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"
二. 配置tomcat服務器安全
定位到tomcat服務器的安裝目錄, 找到conf下的server.xml文件服務器
找到以下已經被註釋的代碼:工具
去掉註釋,修改成:加密
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="F:\Keystore\tomcat.keystore" keystorePass="123456"/>
這裏,密碼和證書的位置根據我的的具體環境而設置,屬性參數以下所述:spa
屬性 | 描述 |
clientAuth | 若是設爲true,表示Tomcat要求全部的SSL客戶出示安全證書,對SSL客戶進行身份驗證 |
keystoreFile | 指定keystore文件的存放位置,能夠指定絕對路徑,也能夠指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變量 的相對路徑。若是此項沒有設定,默認狀況下,Tomcat將從當前操做系統用戶的用戶目錄下讀取名爲「.keystore」的文件。 |
keystorePass | 指定keystore的密碼,若是此項沒有設定,在默認狀況下,Tomcat將使用「changeit」做爲默認密碼。 |
sslProtocol | 指定套接字(Socket)使用的加密/解密協議,默認值爲TLS,用戶不該該修改這個默認值。 |
ciphers | 指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。若是此項沒有設定,在默認狀況下,套接字能夠使用任意一個可用的密碼。 |
訪問支持ssl的web站點:操作系統
啓動本場tomcat,在瀏覽器中輸入:https://localhost:8443/
注:
訪問支持ssl的web站點:
發現ssl不工做,出現以下信息:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
解決方案是修改servlet.xml的文件:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="D:\Tools\Web\ssl\tomcat.keystore" keystorePass="tomcat" ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA"/>
或者不要使用ciphers該節點屬性