溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tomcat中怎么配置SSL

發(fā)布時間:2021-06-21 15:15:25 來源:億速云 閱讀:506 作者:Leah 欄目:大數(shù)據(jù)

Tomcat中怎么配置SSL,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

  1. 生成Server端安全證書  首先要在本地準(zhǔn)備一份符合X.509標(biāo)準(zhǔn)的Server端安全證書。如果有條件的話,可以向權(quán)威CA申請一份經(jīng)過認(rèn)證的安全證書(需要繁瑣的手續(xù)和金錢)。如果沒有條件的話,可以使用JDK提供的證書生成工具,在Windows命令行中操作如下:          

    C:\> keytool -genkey -keyalg RSA -keysize 2048  -sigalg SHA256withRSA -dname "cn=127.0.0.1,ou=product,o=uestc,c=CN" -validity 3650 -storepass uestc@#123zp -keystore c:\key.store
    輸入<mykey>的主密碼
            (如果和 storepass 密碼相同,按回車):(按回車)
    這樣就在C:\目錄下生成了Server端的安全證書(key.store)。


                       

    備注:

  2. 使用低版本的JDK(如JDK 1.4)帶的keytool工具生成證書時,由于不支持SHA256withRSA算法,會報如下錯誤“java.security.NoSuchAlgorithmException: SHA256WITHRSA Signature not available”;必須使用較高版本的JDK(如JDK 1.6)帶的keytool來生成證書。

  3. Linux下創(chuàng)建證書時,只需要更改上面命令的路徑信息,其余不變。

  4. Tomcat中怎么配置SSL  注意:

  5. 生成安全證書的工具keytool的參數(shù)validity表示證書的有效期,單位為天,需要根據(jù)實際需要配置。

  6. 作為Server端安全證書,CN字段必須與WEB應(yīng)用的實際域名保持一致,否則會使客戶端報證書名稱不一致。

  7. 由于某些web容器的原因,keypass和storepass必須保持一致。

  8. 對于非專業(yè)證書機(jī)構(gòu)頒發(fā)的證書,如果要去掉“不受信任的證書”的告警,需要在客戶端的瀏覽器中導(dǎo)入根證書,步驟如下:

  9. 1)訪問https地址,查看證書:

  10. Tomcat中怎么配置SSL

           2)點擊復(fù)制到文件,即可保存cert文件

  11. Tomcat中怎么配置SSL

  12. 3)打開IE工具欄,選擇工具—Internet選項—內(nèi)容—證書

  13. Tomcat中怎么配置SSL

  14. 4)進(jìn)入受信任的根證書頒發(fā)機(jī)構(gòu),點擊“導(dǎo)入”,將上一步導(dǎo)出的cert文件導(dǎo)入受信任的根證書機(jī)構(gòu)

    Tomcat中怎么配置SSL

    5)重啟IE,重新訪問https地址,如下,不會提示證書不受信任

  15. Tomcat中怎么配置SSL

  1. 添加Server端安全證書

  1. 打開Tomcat安裝目錄下的/conf/server.xml文件。

  2. 修改http重定向到https的端口:

    <Connector executor="tomcatThreadPool"

               port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="443" />

注意:不同的tomcat版本,其配置項可能有一定差別,請在原配置文件上修改藍(lán)色部分即可。

  1. 修改https參數(shù)

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

          maxThreads="150" scheme="https" secure="true"

          sslEnabledProtocols="TLSv1.1,TLSv1.2"[z1] 

          ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA"[z2] 

          keystoreFile="c:/key.store" keystorePass="uestc@#123zp" clientAuth="false" />

[z3] 


 [z1]需要在配置中添加,僅允許此2種

 [z2]需要在配置中添加

 [z3]不能明文存儲

注意:

1)keystoreFile參數(shù)的文件名請使用絕對路徑,keystorePass參數(shù)上的口令即storepass口令。

2)上述配置,不同的tomcat版本,其配置項可能有一定差別,如果啟動后,日志存在異常信息,那么,請在原配置文件上添加以上SSL相關(guān)配置項。

  1. 如果SSL不能正常啟動,可以指定使用Java Secure Socket Extension (JSSE),即將protocol="HTTP/1"修改為protocol="org.apache.coyote.http1Http11Protocol"

  1. 配置需要強(qiáng)制使用SSL的目錄或文件

例如對于/SSL目錄下的所有文件和/test/login.jsp需要強(qiáng)制使用SSL,則編輯Tomcat對應(yīng)web應(yīng)用目錄下的WEB-INF/web.xml,在<web-app>節(jié)中加入如下配置:

<security-constraint>

         <web-resource-collection>

                   <web-resource-name>SSL</web-resource-name>

                   <url-pattern>/SSL/* </url-pattern>

                   <url-pattern>/test/login.jsp</url-pattern>

         </web-resource-collection>

         <user-data-constraint>

                   <transport-guarantee>CONFIDENTIAL</transport-guarantee>

         </user-data-constraint>

</security-constraint>

注意:

Web應(yīng)用中,從https切換到http過程中會丟失session,無法保持會話的連續(xù)。解決的辦法就是用http-https-http過程代替https-http過程,保證會話的連續(xù)性。

  1. 重新啟動Tomcat

  2. 測試建議

  1. 在瀏覽器里輸入:https://xx.xx.xx.xx: 443,應(yīng)能通過SSL正常訪問。

  2. 對于https切換到http頁面需要重點進(jìn)行測試,檢查切換后會話是否中斷。

  3. 在手機(jī)終端上進(jìn)行測試,看能否正常使用。(如果有手機(jī)終端用戶的話)。

  4. 使用SSL后,對性能會有影響,可進(jìn)行性能測試。(可選)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI