Tomcat 伺服器 SSL 證照安裝部署
1準備伺服器
- 購買網上各個產家的雲伺服器
- 或者在自己的電腦上裝虛擬機器
- 二者皆可,建議選擇第一種,因為操作起來相對方便
2安裝JDK
2.1上傳JDK到Linux的伺服器.
上傳JDK
解除安裝open-JDK
# 檢視jdk版本
java –version
# 檢視安裝的jdk資訊
rpm -qa | grep java
# 解除安裝jdk(若自己的伺服器上沒有可忽略,購買的雲伺服器一般沒有)
rpm -e --nodeps java-1.6.0-openjdk-1.8.0.35-1.13.7.1.el6_6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.8.0.79-2.5.5.4.el6.i686
2.2在Linux伺服器上安裝JDK
通常將軟體安裝到/usr/local
直接解壓就可以
tar –zxvf jdk目標路徑
2.3配置JDK的環境變數.
配置環境變數:
① vi /etc/profile
② 在末尾行新增
#配置Java環境變數,注意JAVA_HOME修改成自己的路徑,其他預設即可
JAVA_HOME=/usr/local/jdk/jdk1.8.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
儲存退出
③source /etc/profile 使更改的配置立即生效
3在Linux上安裝tomcat:
-
Tomcat上傳到linux上
-
將上傳的tomcat解壓
-
在tomcat/bin目錄下執行 startup.sh
-
注意防火牆
4選擇自己下載的SSL證照進行配置
-
解壓已下載儲存到本地的Tomcat證照檔案
- 證照檔案XX.jks
- 密碼檔案XX.txt
-
將字尾為XX.jks的檔案上傳到tomcat安裝路徑conf資料夾下
-
配置server.xml
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" keystoreFile="你自己jks檔案的路徑" keystorePass="你下載的密碼,解壓的資料夾裡就有" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
注意:Tomcat 9強制要求證照別名設定為tomcat。需要將
protocol="HTTP/1.1"
轉換成protocol="org.apache.coyote.http11.Http11NioProtocol"
-
配置web.xml檔案,開啟HTTP強制跳轉HTTPS,在檔案後新增以下內容
<login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert 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>
-
重啟Tomcat
./shutdown.sh ./startup.sh
-
至此,就大功告成了!!!可以通過”https://域名“訪問了。
5總結
在4步配置配置server.xml時注意修改redirectPort為443
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
我就在這裡出錯了,導致浪費了一些時間。