安裝證書後HTTPS無法正常顯示的原因有哪些
很多人可能都會遇到這個讓人抓狂的問題:為什麼按要求部署SSL證書了,但訪問網站時還是會出現不安全的提示?首先我們來看看為什麼會出現不安全提示:
當我們訪問一個已安裝SSL證書的網站頁面時,如果頁面出現"您的連結不是私密連結"或"此網頁含有不安全的內容"等類似的錯誤提示,這說明瀏覽器檢查到你當前所訪問的HTTPS網站的SSL證書出現問題了,存在訪問風險,所以提示使用者"此站點不安全"。
那麼這個問題是怎麼出現的呢?要怎樣才能解決呢?請看下面的分析:
域名不匹配
HTTPS網站其中一個非常重要的作用,就是確認網站的身份。這樣就能非常有效地預防DNS劫持。一張SSL證書必須對應一個網站域名,當你訪問的網站域名和SSL證書中設定的域名不一致時,瀏覽器就會提示使用者網站不安全。可能是由於配置錯誤導致SSL證書與網站域名不配置,也可能因為多個域名都能使用同一張SSL證書,導致域名與SSL證書不匹配。
此種情況下,需要站長確認域名與所部署的SSL證書是否相匹配,如不匹配需及時替換為正確的證書。
證書到期
這個原因非常好理解,即您的SSL證書到期需要續費重新申請了; SSL證書過期也是導致出現錯誤的原因之一。一般SSL證書的有效期為1~2年,當證書過期後,就必須要更新證書,HTTPS網站才能繼續正常工作。否則過了有效期就會提示錯誤。可能有的站長管理很多網站,在證書到期之後重新安裝會非常耗時,希望申請證書的有效期能長一點,但從CA(Certificate Authority證書頒發機構)的角度來看,設定證書有效期是非常有必要的。
首先是為了安全考慮,CA機構不能保證一個網站永遠是合法的,因此它需要定期檢查網站。其次,涉及到證書吊銷。當網站的私鑰丟失時,網站應該向CA申請將他們的證書加入到證書吊銷列表(CRL)裡。當使用者訪問https站點時,瀏覽器會自動向CA請求吊銷列表,如果使用者訪問的站點提供的證書在CRL裡,瀏覽器就不信任這個證書,因為攻擊者可能擁有同樣的證書。所以如果證書永久有效,隨著越來越多的私鑰丟失,吊銷列表也越來越大,因為只有加進去的,沒有剔出去的,這既給CA增加流量壓力,也會增加瀏覽器的流量。而一旦有效期只有幾年,那麼CA就可以將那些已經過期了的證書從CRL裡剔除,因為反正瀏覽器也不信任過期證書。
系統時間錯誤
另外一個常見的原因,是客戶端的系統時間錯誤。瀏覽器會判斷SSL證書是否過期,而瀏覽器的時間判斷是依照你的系統時間。假如你的系統時間不正確,那麼很有可能瀏覽器就會出現誤判的情況,導致一張還沒過期的SSL證書被認為是過期了。最終頁面顯示錯誤提示。解決辦法也非常簡單,修改你的系統時間為正確的就可以了。
不受信任的SSL證書
一些站長或者個人站長由於經費上的預算有限,又恰好懂得一些程式碼,自己製作出一張自簽名的SSL證書或向一些SSL證書服務商申請不受信任的SSL證書。但現在瀏覽器對SSL證書的管理也更加嚴格,這些使用自簽名SSL證書或不受信任的SSL證書部署的網站是不被瀏覽器信任的,所以訪問時仍然會出現錯誤提示。因為自簽名證書或小型SSL證書並不在作業系統的可信任根證書之中。只有是由受信任根證書所簽發出來的SSL證書,瀏覽器才會認為是安全的,其他的SSL證書瀏覽器一律都會提示錯誤。
站內呼叫非HTTPS素材
站內呼叫非HTTPS素材包括圖文、CSS、js等素材。出現這種情形時,一般在瀏覽器安全鎖處會看到鎖出現了一個三角形圖形,點選檢視SSL證書詳細資訊能看到有感嘆號說明。下面我們就來看看如何解決這一問題:
首先你可以通過按住鍵盤上的F12鍵進入開發者模式,或者滑鼠放在頁面空白處點選右鍵後選擇"檢視網頁原始碼",之後就可以在右側邊框找是哪些非安全連結導致整個網站不被信任。
檢視上圖中找到的兩個連結,的確是http的素材路徑。
那麼現在我們需要做的就是檢查這兩個連結是否為有用連結;如果這個連結沒有什麼作用,刪掉也不會對網站有任何影響,那麼直接刪除就行了。然後繼續檢查直至清除所有無用的非安全連結。完成清理後,再清除瀏覽器快取,則可以看到網站已經重新被瀏覽器信任了。
現在再來看看第二種情況,如果這個元素或圖片/CSS/JS是對網站極為重要的內容,絕對不可以刪除。此時,則只需把源站的非安全素材的路徑由絕對路徑放置在本站資料夾變成相對路徑。
缺少中間根證書
還有一種情況是由於證書鏈不完整缺少中間根證書導致的。這種情況找到SSL證書的中間根證書、補全證書鏈再重新安裝即可解決問題。
以上即為幾種常見的導致SSL證書部署後仍出現不安全提示的原因,其中站內呼叫非HTTPS素材包括圖文、CSS、js等素材這個原因出現得較多,在出現問題時可以首先考慮是不是這個原因導致的。