您好,登錄后才能下訂單哦!
Tomcat中怎么配置SSL,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
生成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)。
備注:
使用低版本的JDK(如JDK 1.4)帶的keytool工具生成證書時,由于不支持SHA256withRSA算法,會報如下錯誤“java.security.NoSuchAlgorithmException: SHA256WITHRSA Signature not available”;必須使用較高版本的JDK(如JDK 1.6)帶的keytool來生成證書。
Linux下創(chuàng)建證書時,只需要更改上面命令的路徑信息,其余不變。
注意:
生成安全證書的工具keytool的參數(shù)validity表示證書的有效期,單位為天,需要根據(jù)實際需要配置。
作為Server端安全證書,CN字段必須與WEB應(yīng)用的實際域名保持一致,否則會使客戶端報證書名稱不一致。
由于某些web容器的原因,keypass和storepass必須保持一致。
對于非專業(yè)證書機(jī)構(gòu)頒發(fā)的證書,如果要去掉“不受信任的證書”的告警,需要在客戶端的瀏覽器中導(dǎo)入根證書,步驟如下:
1)訪問https地址,查看證書:
2)點擊復(fù)制到文件,即可保存cert文件
3)打開IE工具欄,選擇工具—Internet選項—內(nèi)容—證書
4)進(jìn)入受信任的根證書頒發(fā)機(jī)構(gòu),點擊“導(dǎo)入”,將上一步導(dǎo)出的cert文件導(dǎo)入受信任的根證書機(jī)構(gòu)
5)重啟IE,重新訪問https地址,如下,不會提示證書不受信任
添加Server端安全證書
打開Tomcat安裝目錄下的/conf/server.xml文件。
修改http重定向到https的端口:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
注意:不同的tomcat版本,其配置項可能有一定差別,請在原配置文件上修改藍(lán)色部分即可。
修改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)配置項。
如果SSL不能正常啟動,可以指定使用Java Secure Socket Extension (JSSE),即將protocol="HTTP/1"修改為protocol="org.apache.coyote.http1Http11Protocol"
配置需要強(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ù)性。
重新啟動Tomcat
測試建議
在瀏覽器里輸入:https://xx.xx.xx.xx: 443,應(yīng)能通過SSL正常訪問。
對于https切換到http頁面需要重點進(jìn)行測試,檢查切換后會話是否中斷。
在手機(jī)終端上進(jìn)行測試,看能否正常使用。(如果有手機(jī)終端用戶的話)。
使用SSL后,對性能會有影響,可進(jìn)行性能測試。(可選)
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(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)容。