您好,登錄后才能下訂單哦!
Tomcat中怎么配置SSL,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
生成Server端安全證書 首先要在本地準備一份符合X.509標準的Server端安全證書。如果有條件的話,可以向權威CA申請一份經過認證的安全證書(需要繁瑣的手續和金錢)。如果沒有條件的話,可以使用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)。
備注:
使用低版本的JDK(如JDK 1.4)帶的keytool工具生成證書時,由于不支持SHA256withRSA算法,會報如下錯誤“java.security.NoSuchAlgorithmException: SHA256WITHRSA Signature not available”;必須使用較高版本的JDK(如JDK 1.6)帶的keytool來生成證書。
Linux下創建證書時,只需要更改上面命令的路徑信息,其余不變。
注意:
生成安全證書的工具keytool的參數validity表示證書的有效期,單位為天,需要根據實際需要配置。
作為Server端安全證書,CN字段必須與WEB應用的實際域名保持一致,否則會使客戶端報證書名稱不一致。
由于某些web容器的原因,keypass和storepass必須保持一致。
對于非專業證書機構頒發的證書,如果要去掉“不受信任的證書”的告警,需要在客戶端的瀏覽器中導入根證書,步驟如下:
1)訪問https地址,查看證書:
2)點擊復制到文件,即可保存cert文件
3)打開IE工具欄,選擇工具—Internet選項—內容—證書
4)進入受信任的根證書頒發機構,點擊“導入”,將上一步導出的cert文件導入受信任的根證書機構
5)重啟IE,重新訪問https地址,如下,不會提示證書不受信任
添加Server端安全證書
打開Tomcat安裝目錄下的/conf/server.xml文件。
修改http重定向到https的端口:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
注意:不同的tomcat版本,其配置項可能有一定差別,請在原配置文件上修改藍色部分即可。
修改https參數
<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參數的文件名請使用絕對路徑,keystorePass參數上的口令即storepass口令。
2)上述配置,不同的tomcat版本,其配置項可能有一定差別,如果啟動后,日志存在異常信息,那么,請在原配置文件上添加以上SSL相關配置項。
如果SSL不能正常啟動,可以指定使用Java Secure Socket Extension (JSSE),即將protocol="HTTP/1"修改為protocol="org.apache.coyote.http1Http11Protocol"
配置需要強制使用SSL的目錄或文件
例如對于/SSL目錄下的所有文件和/test/login.jsp需要強制使用SSL,則編輯Tomcat對應web應用目錄下的WEB-INF/web.xml,在<web-app>節中加入如下配置:
<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應用中,從https切換到http過程中會丟失session,無法保持會話的連續。解決的辦法就是用http-https-http過程代替https-http過程,保證會話的連續性。
重新啟動Tomcat
測試建議
在瀏覽器里輸入:https://xx.xx.xx.xx: 443,應能通過SSL正常訪問。
對于https切換到http頁面需要重點進行測試,檢查切換后會話是否中斷。
在手機終端上進行測試,看能否正常使用。(如果有手機終端用戶的話)。
使用SSL后,對性能會有影響,可進行性能測試。(可選)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。