1. 程式人生 > >HTTP轉HTTPS

HTTP轉HTTPS

這樣的資料在網上有好多,但是往往沒有一個是可以一篇文章就解決的,當然我不敢保證我的文章一定可以解決,我只能說,我的問題解決的,在此分享給大家,畢竟每個人遇到的問題都不盡相同,OK進入正題,先推薦兩篇文章生成HTTPS證書 (https://blog.csdn.net/bao19901210/article/details/8768362),  配置禁止http不安全請求(https://blog.csdn.net/liushu_it/article/details/47123209),接下來我來介紹一下自己的配置:


1.找到你的jdk安裝目錄:

執行命令
keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500

引數簡要說明:“F:\tomcat.keystore”含義是將證書檔案儲存在F盤,證書檔名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,預設值是90天

命令列中填寫必要的引數:
A、輸入keystore密碼:此處需要輸入大於6個字元的字串(在輸入的時候不會顯示)
B、“您的名字與姓氏是什麼?”這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來要在瀏覽器中輸入的訪問地址
C、 “你的組織單位名稱是什麼?”、“您的組織名稱是什麼?”、“您所在城市或區域名稱是什麼?”、“您所在的州或者省份名稱是什麼?”、“該單位的兩字母國 家程式碼是什麼?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“正確嗎?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的資訊
D、輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一致,設定其它密碼也可以

完成上述輸入後,直接回車就可以看到F盤下的tomcat.keystore檔案。

2.配置Tomcat
web.xml新增如下配置

<!--https-->
<login-config>
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<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>

server.xml修改如下配置(註釋的是原來的配置,沒註釋的是修改後的配置)
<!--http
<Connector port="8080" protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="8443" />
-->
<!--https-->
<Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="443" />
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true"
        clientAuth="false" sslProtocol="TLS" keystoreFile="D:/software/apache-tomcat-8.5.9/etc/tomcat.keystore" keystorePass="1111111111"/>

<!--http
<Connector port="8009" protocol="AJP/1.3" redirectPort="8433" />
-->
<!--https-->
<Connector port="8009" protocol="AJP/1.3" redirectPort="433" />

3.應用配置web.xml

3.1修改協議

<?xml version="1.0" encoding="UTF-8"?>     

     <web-app xmlns="http://java.sun.com/xml/ns/j2ee"     

                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     

                      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"     

                      version="2.4"


3.2禁止http請求
<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
        <http-method>HEAD</http-method>
        <http-method
>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>