Tomcat SSL/TLS Setting

來讓我們的網站安全一點!! 使用非對稱性的SSL與TLS,這時候JKS就要出現了!!

Step 1. 新建Keystore

SSL憑證就應該要有私鑰與公鑰,我們所出去的東西全都被私鑰加密,只有取得我們的公鑰才可以解密,java正有提供此種功能,因此我們需要建立一個keystore,想起寫Android的時光阿~~~~((嘆

先切換至我們/opt/tomcat/conf並產生keystore

cd /opt/tomcat/conf
keytool -genkey -alias TomcatSSL -keyalg RSA -keypass <KeyPassword> -storepass <StorePassword> -keystore <keystoreName>.jks

Step 2. 修改server.xml

vi /opt/tomcat/conf/server.xml

基本上Tomcat設定檔會有一些範例,這些都是註解的,因此我們要把註解拿掉,有趣的是我在這邊發現設定檔改變了,以往我們的設定檔是這樣加入的,官方確實也是如此教學,也許是因為Tomcat版本最新吧...

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="keystore.jks" keystorePass="password"
           clientAuth="false" sslProtocol="TLS"/>

我的是...

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnable="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="keystore.jks" type="RSA" />
    </SSLHostConfig>
</Connector>

關於這個問題我沒有去研究,可能就是改變寫法,可以有多種SSL憑證的樣子,後續有興趣者可以去研究...

基本上這樣就可以重新啟動tomcat,並且網址為

https://localhost:8443

這邊若是在本機端測試,我們並不需要開啟任何port,但若要開放就不一樣了,然而Tomcat預設都是8080的Port,SSL為8443,AJP:8009,基本上我們要不要修改,全看自己囉!!! 在這邊若想使用80 port我們可能會遇到權限問題,因為linux只有root可以使用1024以下的port,有幾種方式可修改。

A. 把Tomcat角色提高至root

vi /etc/passwd

tomcat:x:96:96:Apache Tomcat:/usr/share/tomcat6:/sbin/nologin

替換為

tomcat:x:0:96:Apache Tomcat:/usr/share/tomcat6:/sbin/nologin

B. 啟動Tomcat角色設定為root

vi /etc/tomcat/tomcat.conf

#TOMCAT_USER="tomcat"

替換為

TOMCAT_USER="root"      # 表明要以 root 的身份來執行 tomcat

C. 修改啟動檔

記得我們在安裝tomcat的時候有撰寫systemctl啟動時使用的檔案嗎?

下方其實有指定user就是開啟的使用者,我們其實可以直接修改這邊,讓root開啟即可。

user=root

results matching ""

    No results matching ""