這篇文章給大家介紹如何在Tomcat9中使用Https證書加密網(wǎng)站,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司于2013年開始,先為萬榮等服務(wù)建站,萬榮等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為萬榮企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
.獲取證書
對于Https的證書,相當(dāng)于是在傳輸過程中加入了第三方的驗證機制,簡稱CA(Certificate Authority),確保傳輸?shù)陌踩?。對于大部分證書,簽發(fā)是需要一定的費用的,本段落主要介紹免費的證書提供方:FreeSSL
官方地址:https://freessl.org/
具備SSL免費證書申請的前提是,先得有一個域名,沒有域名的用戶可以先移步阿里云或者騰訊云等域名交易網(wǎng)站購買域名,本例中,我使用自己的已有域名:letcafe.cn作為樣例
下面介紹如何獲取免費域名Https證書
步驟1、輸入你所購買的域名
步驟2、選項默認,如果沒特殊需求按步驟填入郵箱后創(chuàng)建:
步驟3、創(chuàng)建完成后,等待幾秒后,將會生成一個域名解析DNS的驗證環(huán)節(jié)。對此,需要您去域名供應(yīng)商網(wǎng)站添加解析,例如,我是用的是阿里云,我在:阿里云->控制臺->域名與網(wǎng)站,找到對應(yīng)的域名添加解析
解析示意圖如下:
解析添加完成后,等待將近一分鐘,可以回到FreeSSL驗證DNS,單擊“點擊驗證”按鈕后,將會返回你的CA證書以及公鑰
然后點擊證書下載,即可獲得帶有full_chain.pem的文件以及叫private.key的私鑰,到此,免費的證書已經(jīng)申請完畢,下一步將Tomcat的對應(yīng)內(nèi)容加入HTTPS
3.配置Tomcat
3.1 生成jks文件
由于Tomcat證書不支持直接使用pem + 私鑰的方式,因此,需要多一步使用Openssl將full_chain.pem+private.key轉(zhuǎn)換為jks的步驟,首先將full_chain.pem和private.key上傳至服務(wù)器的任何目錄,我存放的目錄是:/root/apache-tomcat-ssl,如下圖:
隨后使用如下命令,在當(dāng)前目錄下生成一個名為freeSSL.jks的文件,如果使用不了如下命令,嘗試考慮升級Openssl到最新版本:
復(fù)制代碼 代碼如下:
openssl pkcs12 -export -out /root/apache-tomcat-ssl/freeSSL.jks -in ./full_chain.pem -inkey ./private.key
命令過程中會要求輸入keystore密碼,兩次確保一致,并記住該密碼,為了演示,我輸入的密碼為:123456(產(chǎn)品環(huán)境下,請確保安全換成其他復(fù)雜密碼)
3.2 配置server.xml
編輯Tomcat目錄下的server.xml文件,文件路徑位于:$CATALINA_HOME/conf/server.xml,取決于你的Tomcat安裝在何處。
在Connector中,添加如下Connector:
代碼附上:
這一步中的keystoreFile填寫之前使用Openssl生成的jks文件,keystorePass使用之前輸入的密碼。
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/root/apache-tomcat-ssl/freeSSL.jks" keystorePass="123456" clientAuth="false" sslProtocol="TLS"/>
此外,為了將Tomcat監(jiān)聽80端口,并將HTTPS請求轉(zhuǎn)發(fā)到443端口(443為SSL默認端口),還需要將server.xml文件中原有的Connector修改為如下:
將port="8080"改為port="80",redirectPort="8443"改為redirectPort="443"
修改好,保存退出,重啟Tomcat,在公網(wǎng)上訪問輸入地址:letcafe.cn,發(fā)現(xiàn)雖然:
通過輸入https://letcafe.cn。實現(xiàn)了網(wǎng)站上的小鎖顯示了
但是輸入letcafe.cn后,卻失去了Https的加密:
但是,不能用戶每次都去手敲HTTPS對不對,此時的Tomcat是會對默認繼續(xù)使用HTTP,所以如果需要將該域名下的所有訪問都走HTTPS加密的話,需要將所有對Tomcat的THHP訪問都默認轉(zhuǎn)發(fā)給HTTPS的訪問,實現(xiàn)不管輸入letcafe.cn還是https://letcafe.cn都訪問的是HTTPS(如果沒有此需求,可不需要下一步)
4.轉(zhuǎn)發(fā)Http請求到Https
這一步非常簡單,編輯$CATALINA_HOME/conf/web.xml文件,在其中添加如下代碼:
代碼如下:
<!-- 增加所有網(wǎng)址自動跳轉(zhuǎn)https --> <security-constraint> <web-resource-collection> <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
保存后重啟Tomcat,即可完成目標(biāo)
5.訪問測試
在瀏覽器中輸入:letcafe.cn或者https://letcafe.cn或者http://letcafe.cn都可以實現(xiàn)訪問定向到https://letcafe.cn中
6.可能會遇到的問題
如果訪問不了確認如下問題是否解決:
1.防火墻是否開放端口,CentOS中是firewalld,是否添加了443和80端口
解決方案:添加端口并重載防火墻規(guī)則命令如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
查看服務(wù)器已對外開放端口命令,確認是否已放通80與443端口:
firewall-cmd --zone=public --list-ports
2.云服務(wù)提供商的攔截規(guī)則時候設(shè)置開放端口,例如:
阿里云->控制臺->云服務(wù)器ECS->你的服務(wù)器->更多->安全組配置
關(guān)于如何在Tomcat9中使用Https證書加密網(wǎng)站就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站標(biāo)題:如何在Tomcat9中使用Https證書加密網(wǎng)站
文章位置:http://jinyejixie.com/article12/jjiogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站策劃、網(wǎng)站營銷、全網(wǎng)營銷推廣、服務(wù)器托管、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)