HTTPS中證書鏈不完整的解決方案

2021-09-19 21:37:24 字數 1578 閱讀 7642

證書鏈

看來andorid的webview不能開啟頁面應該是與這有關,造成這個問題的主要原因是我們伺服器配置證書的證書鏈不全造成的。

證書鏈其實就是描述證書的簽名環節,就比如是 a 頒發證書給 b ,b頒發證書給c,然後我們手裡的就是證書c。當證書鏈不完整的情況下,也就是沒有描述我們手中的證書c是由誰辦法的,所以導致的瀏覽器不認為你這個證書是可信的授權證書。

每個裝置中都會存有一些預設的可信的根證書,但很多ca是不使用根證書進行簽名的,而是使用中間層證書進行簽名,因為這樣做能更快的進行替換(這句可能不對,原文是 because these can be rotated more frequently)。

如果你的伺服器上沒有中介軟體證書,這樣的結果就是你的伺服器上只有你的**的證書,客戶端的瀏覽器裡只有ca的根證書,這樣就會導致證書信任鏈不全,才導致了上面那兩個截圖中的問題。這種中間層證書不全的問題多出現在移動端的瀏覽器上(就我目前看,ios8 ios9 都沒有出現問題,andorid各個版本都有這個問題)。

當你伺服器上的證書中的信任鏈不全的情況下,瀏覽器會認為當前的鏈結是乙個不安全的,會阻止頁面的開啟。

解決方案

說清楚了原因,解決問題就很簡單了,只要把我們的證書鏈補全就可以了。

從ssl證書服務商那裡,你獲得的crt證書檔案大概是這個樣子的:

-----begin certificate-----

# 證書內容

-----end certificate-----

在你補全中間層證書和根證書後,新的crt證書檔案看起來是這樣的:

-----begin certificate-----

# 證書內容 1

-----end certificate-----

-----begin certificate-----

# 證書內容 2

-----end certificate-----

-----begin certificate-----

# 證書內容 3

-----end certificate-----

這裡包含了你的證書,以及從你的證書向上遞迴直至根證書的全部證書,這樣就可以向瀏覽器證明你的鏈結是安全的。

補全證書鏈

ps:

一般情況下

cert.pem 是證書

chain.pem 是證書鏈編碼

fullchain.pem 是cert.pem和chain.pem的證書集合

privkey.pem 是私鑰檔案1

HTTPS中證書鏈不完整的解決方案

tomcat8.5配置pfx格式ssl證書後,https可以正常訪問,但是 問題與下面這個情況相同 myssl的證書測試反饋缺少中間證書 ssllab的證書測試更詳細,完全截圖的話圖太多,就只貼兩張關鍵位置的 chain issues 這裡會顯示certificate chain incomplet...

證書鏈不完整的解決方法

有一次在做安卓專案,開啟安卓應用總是提示ssl證書報錯,於是使用這個 查詢了下證書的狀態,報告中指出,證書鏈不完整。於是在證書申請 找到了下面資料 安裝伺服器證書 1.獲取伺服器證書檔案 將證書簽發郵件中的包含伺服器證書 的文字複製出來 包括 begin certificate 和 end cert...

C 解決串列埠接收資料不完整

使 用快取機制完成。首先通過定義乙個成員變數listbuffer new list 4096 用來存放所有的資料,在接收函式裡,通過buffer.addrange 方法不斷地將接收到的資料加入到buffer中,並同時對 buffer中的資料進行檢驗,如果達到一定的長度並且校驗結果正確 校驗方法在傳送...