Tomcat 8.5 配置 SSL 證書

申請的是阿里雲的免費證書,下載tomcat版的證書文件 裏面有4個文件分別是: xxxx.key、xxxx.pem、xxxx.pfx、password.txthtml

根具阿里雲上提供的配置說明以下:java

Tomcat支持JKS格式證書,從Tomcat7開始也支持PFX格式證書,兩種證書格式任選其一。
文件說明:apache

  1. 證書文件xxxx.pem,包含兩段內容,請不要刪除任何一段內容。windows

  2. 若是是證書系統建立的CSR,還包含:證書私鑰文件xxxx.key、PFX格式證書文件xxxx.pfx、PFX格式證書密碼文件pfx-password.txt。
    一、證書格式轉換tomcat

在Tomcat的安裝目錄下建立cert目錄,而且將下載的所有文件拷貝到cert目錄中。若是申請證書時是本身建立的CSR文件,附件中只包含xxxx.pem文件,還須要將私鑰文件拷貝到cert目錄,命名爲xxxx.key;若是是系統建立的CSR,請直接到第2步。
到cert目錄下執行以下命令完成PFX格式轉換命令,此處要設置PFX證書密碼,請牢記:
openssl pkcs12 -export -out xxxx.pfx -inkey xxx.key -in xxxx.pem
二、PFX證書安裝
找到安裝Tomcat目錄下該文件server.xml,通常默認路徑都是在 conf 文件夾中。找到 <Connection port="8443" 標籤,增長以下屬性:
keystoreFile="cert/xxxx.pfx"
keystoreType="PKCS12"測試

此處的證書密碼,請參考附件中的密碼文件或在第1步中設置的密碼

keystorePass="證書密碼"ui

完整的配置以下,其中port屬性根據實際狀況修改:
<Connector port="8443"阿里雲

protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/xxxx.pfx"
keystoreType="PKCS12"
keystorePass="證書密碼"
clientAuth="false"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4"/>

三、JKS證書安裝(幫助)
( 1 ) 使用java jdk將PFX格式證書轉換爲JKS格式證書(windows環境注意在%JAVA_HOME%/jdk/bin目錄下執行)
keytool -importkeystore -srckeystore xxxx.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回車後輸入JKS證書密碼和PFX證書密碼,強烈推薦將JKS密碼與PFX證書密碼相同,不然可能會致使Tomcat啓動失敗。
( 2 ) 找到安裝 Tomcat 目錄下該文件Server.xml,通常默認路徑都是在 conf 文件夾中。找到 <Connection port="8443" 標籤,增長以下屬性:
keystoreFile="cert/your-name.jks"
keystorePass="證書密碼"
完整的配置以下,其中port屬性根據實際狀況修改:
<Connector port="8443"code

protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/your-name.jks"
keystorePass="證書密碼"
clientAuth="false"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4"/>

( 注意:不要直接拷貝全部配置,只需添加 keystoreFile,keystorePass等參數便可,其它參數請根據本身的實際狀況修改 )
四、 重啓 Tomcat。
五、 經過 https 方式訪問您的站點,測試站點證書的安裝配置,如遇到證書不信任問題,請查看相關文檔。server

以上是阿里雲上提供的文檔。 我安裝的是Tomcat8,和說明上的出入較大,費了一些功夫,由於我下載的是系統簽名的證書,也就是隻關注第一、2步就能夠了。下面說一下我走過的坑

(1)在Server.xml中能夠找到有兩個Connector 端口爲8843的註釋, 一種是使用Http11NioProtocol 另外一種是Http11AprProtocol , 根據註釋可咱們使用第一種。

(2)keystoreFile文件路徑的配置,若是按照說明裏面的配置,會提示找不到文件。所以我配置了絕對地址:D:/apache-tomcat-8.5.15/cert/xxxx.pfx . 能夠把證書放到config目錄下,配置成conf/xxxx.pfx就好了。

(3)tomcat8 配置ssl的方式是有所改變的,多了SSLHostConfig、Certificate標籤,所以百度上的配置大部分都是不適用的,tomcat啓動是會報錯。https://tomcat.apache.org/tom... 這個連接裏面有配置ssl的一些屬性。基本配置以下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="D:/apache-tomcat-8.5.15/cert/xxx.pfx"
                         certificateKeystoreType="PKCS12" certificateKeystorePassword="xxx" />
        </SSLHostConfig>
    </Connector>

tomcat配置java自簽名證書:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="D:/apache-tomcat-8.5.15/cert/httpsTest.keystore"
                         certificateKeystoreType="JKS" certificateKeystorePassword="123456" />
        </SSLHostConfig>
    </Connector>

其中keystore的密碼和證書的密碼要同樣

相關文章
相關標籤/搜索