本地測試Http升級到Https(證書信任)

獵手家園發表於2020-10-08

當我們使用谷歌瀏覽器呼叫麥克風,攝像頭,定位等許可權時,谷歌瀏覽器認為http連線是不安全的,要求使用https,於是拒絕了訪問。

但是我們是在本地測試,又沒有域名和SSL證書,所以只能生成一個證書檔案。

 

一、生成證書

1、開啟CMD,輸入以下命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore D:\tomcat\tomcat.keystore -validity 36500

意思是:“D:\tomcat\tomcat.keystore”含義是將證書檔案儲存在F盤,證書檔名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,預設值是90天。

 

2、接下來要輸入金鑰口令,由於是本地,我輸入了:123456

 

3、接下來要填寫一些必要資訊:

  • “您的名字與姓氏是什麼?”

  這是必填項,並且必須是TOMCAT部署主機的域名或者IP[如:abcom.com 或者 192.168.0.1],就是你將來要在瀏覽器中輸入的訪問地址

  • “你的組織單位名稱是什麼?”、“您的組織名稱是什麼?”、“您所在城市或區域名稱是什麼?”、“您所在的州或者省份名稱是什麼?”、“該單位的兩字母國家程式碼是什麼?”

  可以按照需要填寫也可以不填寫直接回車,最後一步在系統詢問“正確嗎?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的資訊。

 

4、輸入tomcat主密碼

輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一致,設定其它密碼也可以。

生成完成,可在指定目錄下找到證書檔案。

 

5、此時會報錯

Warning:
JKS 金鑰庫使用專用格式。建議使用 "keytool -importkeystore -srckeystore D:\tomcat\tomcat.keystore -destkeystore D:\tomcat\tomcat.keystore -deststoretype pkcs12" 遷移到行業標準格式 PKCS12。

按它提示的命令輸一遍就可以了。

 

二、配置Tomcat

1、修改server.xml檔案

(1)將生成的證書檔案複製到Tomcat要引用的位置
(2)開啟apache-tomcat-8.0.20\conf\server.xml,修改如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="D:\tomcat\tomcat.keystore" keystorePass="123456" />

這裡有兩點要注意一下:

(1)這段程式碼預設是註釋掉的,需要自己開啟。

(2)Https預設埠是443,由於我本地還裝了其它應用,所以指定8443,這樣就需要在訪問的時候,要帶埠。

 

同時要修改跳轉埠

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

注意事項同上。

 

2、修改web.xml檔案(有人也說可以不修改)

在</welcome-file-list>後面加上這樣一段

<login-config>
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
    <!-- Authorization setting for SSL -->
    <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後即可以使用SSL。

 

3、說明

使用Https訪問,Chrome會提示安全警告,需要手動點選“高階”,“繼續訪問”即可,結果再https下使用ip地址訪問是沒有問題的可以獲取瀏覽器麥克風許可權。

 

三、自動生效

每次開啟URL都需要手動去點選“高階”,“繼續訪問”,有人使用下面的辦法可以解決這個問題(不過我配置完成後還是不行,我現在貼出來,大家可以試驗一下)。

 

1、點選URL前面的ICON

 

2、將證書儲存到本地

 

3、雙擊安裝證書

 

4、選擇受信任的根證書頒發機構

 

5、確定,重啟Chorme即可。

相關文章