標籤:ejb system 原理 網站 響應 images 編輯 pass 開始
1. https單向認證原理
“單向認證”,即“瀏覽器”驗證“伺服器”的認證是否合法,從而判斷正在訪問的網站是否可信。這也是當前網路上最常用的認證方式,GitHub、Google、Twitter、Facebook等均採用此種方式。
“單向認證”的兩個通訊實體如下
他們之間的通訊過程如下
下面給出簡要的文字說明
- Client Access Server
- 伺服器響應用戶端,發送伺服器憑證給用戶端
- 用戶端查詢“受根信任憑證授權單位”,驗證伺服器憑證
- 用戶端驗證完伺服器憑證,產生“金鑰組”及工作階段金鑰,與伺服器協商工作階段金鑰
- 工作階段金鑰協商完成,開始安全加密通訊
2. 準備認證
認證需要準備兩個
- 伺服器憑證(tomcat為jks格式)
- CA根憑證
伺服器憑證用於瀏覽器驗證伺服器身份,CA根憑證只是為了讓瀏覽器信任伺服器憑證。產生伺服器憑證的方式很多,keytool、openssl、ejbca都可以,具體過程參考我的其他文章,這裡不贅述。我產生的伺服器憑證名為“tomcat-win.jks”,CA根憑證名稱是“ruxueCA.crt”。
3. 配置tomcat
編輯tomcat/conf目錄下的“server.xml”,找到如下內容,如被注釋,請去掉注釋
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="D:\Download\tomcat-win.jks" keystorePass="123456" />
配置好憑證路徑和訪問密碼,啟動tomcat。
3. 瀏覽器訪問
瀏覽器輸入https://localhost:8443,出現如下錯誤,點擊“繼續瀏覽此網站(不推薦)”
可以正常訪問tomcat,但出現認證錯誤提示
點擊“認證錯誤”,出現如下資訊
這是因為這個認證是CA頒發給“win.ruxue.online”網站的,而我們訪問的網域名稱是“localhost”。修改C:\Windows\System32\drivers\etc目錄下的hosts檔案,添加如下一行資訊。
127.0.0.1 win.ruxue.online
在瀏覽器中輸入https://win.ruxue.online:8443,依然出現“此網站的安全性憑證出現問題”的錯誤提示,同上,點擊“認證錯誤”查看,發現這次的錯誤不同了。
這是因為瀏覽器“受根信任憑證授權單位”中並沒有頒發“tomcat-win.jks”認證的CA機構資訊,瀏覽器因此認為這個認證有問題,此時我們需要在瀏覽器的“受根信任憑證授權單位”匯入CA根憑證“ruxueCA.crt”。
匯入成功之後再訪問https://win.ruxue.online:8443
沒有任何問題了,點擊那把綠色的鎖,可以看到這個網站的安全性憑證資訊。
tomcat配置https單向認證