網站Http升級至Https(基於Tomcat)


由於之前一直忙於服創比賽,然后就導致好久沒寫博客了。 現在服創結束也有十來天了,感覺不寫點什么就對不起自己了。
於是乎,就寫寫將網站從http升級到https的過程吧。

首先域名和服務器自然是必須的,大致流程分為以下幾部:

  • 申請https證書
  • 上傳文件至服務器
  • 配置https

申請https證書

https證書通常是收費的, 不過也有免費版的可以使用。我使用的是在騰訊雲上申請的免費版,下面就以騰訊雲的為例講解吧。
首先進入騰訊雲中雲產品列表,選擇SSL證書管理 ,進入登錄后大概是這個樣子

Image

然后是選擇 申請免費證書,然后選擇 ‘免費版DVSSL證書’ 那一個,隨后填寫域名信息和郵箱,其余的隨意了。需要注意的是,這里申請的免費證書不能用於子域名,如果子域名要用的話,還需要另外申請。 然后下一步,按提示添加域名的解析記錄(推薦使用這種方法進行域名認證),認證成功之后便立刻會審核成功,然后就可以下載證書文件了。

上傳文件至服務器

證書文件下載后,大概是這個樣子

包含了比較主流的容器的證書文件。我們點擊Tomcat進入后,有這兩個文件

第一個即 Java KeyStore (JKS),即證書文件;
第二個即密碼;
然后我們將第一個文件復制到服務器,我使用的是scp命令(Windows中PowerShell好像有這個命令):
scp C:\Users\Asche\home.asche.top.jks root@home.asche.top:/root
其中左邊的參數是本地中文件的位置,右邊是 用戶@域名:目錄 隨后按提示繼續以及輸入密碼即可。
第二個文件就不用傳了,畢竟就一個密碼,特別短。

Tomcat配置https

ssh登錄服務器,進入Tomcat的根目錄后,首先將證書文件拷貝至conf目錄下,然后編輯conf目錄下的server.xml文件,在Connector同級標簽下,添加以下代碼:

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true"
        keystoreFile="conf/******.jks"
        keystorePass="******"
        clientAuth="false" sslProtocol="TLS" />

其中443代表https監聽的端口。並且記得將上面的***替換為你的具體信息,上面那個為證書文件,下面那個即之前沒有上傳的那個文件內的密碼,直接復制粘貼上來就行了。

然后重啟Tomcat之后,瀏覽器里就可以以Https://域名 的方式訪問你的網站了。

如果還想讓網站都以https的方式訪問的話,還需要進一步設置。
首先還是修改conf下的的server.xml文件,將默認的8080端口改為80端口后,再將其中的重定向端口改為443,改完之后大概是這個樣子

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

到這里還沒有結束,還需要修改conf目錄下的web.xml文件,來到文件的末尾,在web-app標簽結束前添加以下代碼:

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Context</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <!-- auth-constraint goes here if you requre authentication -->
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

即一些安全相關的配置。添加保存后,重啟Tomcat,再以http的方式訪問的你的網站,它就會自動重定向443端口,即以https的方式訪問了。
好了,教程結束!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM