Tomcat 配置https協議
阿新 • • 發佈:2018-11-01
記錄一下為了使Tomcat容器支援https協議所做的配置步驟
1.首先部署Tomcat的環境,從apache官方網站上下載解壓版tomcat解壓後防止某個目錄即可,不再贅述
2.使用java自帶的工具生成安全證書
進入jdk安裝目錄下的bin資料夾,進入dos介面(資源管理器進入該級目錄後按住shift鍵右擊滑鼠,選擇"在此處開啟命令視窗")
使用命令
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"
引數解釋
C:\Program Files\Java\jdk1.8.0_121\bin>keytool -genseckey -help keytool -genseckey [OPTION]... 生成金鑰 選項: -alias <alias> 要處理的條目的別名 -keypass <arg> 金鑰口令 -keyalg <keyalg> 金鑰演算法名稱 -keysize <keysize> 金鑰位大小 -keystore <keystore> 金鑰庫名稱 -storepass <arg> 金鑰庫口令 -storetype <storetype> 金鑰庫型別 -providername <providername> 提供方名稱 -providerclass <providerclass> 提供方類名 -providerarg <arg> 提供方引數 -providerpath <pathlist> 提供方類路徑 -v 詳細輸出 -protected 通過受保護的機制的口令 使用 "keytool -help" 獲取所有可用命令
為了方便管理,將f盤根目錄生成的tomcat.keystore複製到tomcat的config同級目錄中的ssl資料夾中
3.修改server.xml
原有的配置是註釋狀態,如下所示
<!-- <Connector SSLEnabled="true" clientAuth="false" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/> -->
修改為
<Connector SSLEnabled="true" clientAuth="false" connectionTimeout="20000" keystoreFile="E:/lujx/Refs/apache-tomcat-8.0.53/ssl/tomcat.keystore" keystorePass="123456" maxThreads="150" port="8443" protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS"/>
屬性 | 描述 |
---|---|
clientAuth |
如果設為true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證 |
keystoreFile |
指定keystore檔案的存放位置,可以指定絕對路徑,也可以指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變數 的相對路徑。如果此項沒有設定,預設情況下,Tomcat將從當前作業系統使用者的使用者目錄下讀取名為“.keystore”的檔案。 |
keystorePass |
指定keystore的密碼,如果此項沒有設定,在預設情況下,Tomcat將使用“changeit”作為預設密碼。 |
sslProtocol |
指定套接字(Socket)使用的加密/解密協議,預設值為TLS,使用者不應該修改這個預設值。 |
ciphers |
指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。如果此項沒有設定,在預設情況下,套接字可以使用任意一個可用的密碼 |
ps:用keytool生成證書時,名字與姓氏應該是域名。
此時,使用 https://localhost:8443即可訪問tomcat首頁。
擴充套件:
1.將protocol="HTTP/1.1"替換為protocol="org.apache.coyote.http11.Http11Protocol"
2.可將埠改為443,此時訪問https://localhost即可。
參考資料: