1. 程式人生 > >Tomcat 配置https協議

Tomcat 配置https協議

記錄一下為了使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即可。

參考資料:

http://tomcat.apache.org/tomcat-8.0-doc/index.html

http://ln-ydc.iteye.com/blog/1330674