HTTPS(超文本傳輸安全協定)是HTTP(超文本傳輸協定)的安全版本。它通過使用SSL/TLS協議來加密數據、保護數據完整性和身份驗證,從而增強了HTTP的功能。HTTPS廣泛用於需要安全通信的在線交易和管理敏感信息。以下以Nginx為例介紹如何部署自簽名的HTTPS證書。
一. HTTPS的主要特點包括:
1.加密:HTTPS通過SSL/TLS在客戶端計算機和服務器之間建立加密連接,保護用戶隱私和數據傳輸過程,防止數據在傳輸過程中被截取或更改。
2.數據完整性:通過使用SSL/TLS證書驗證服務器身份,保證數據在傳輸過程中保持完整,有助於避免安全威脅,如DNS劫持和中間人攻擊。
二. HTTPS的工作原理:
1.客戶端發送HTTPS請求:在瀏覽器中輸入HTTPS URL後,會發送SSL請求進行服務器驗證和建立連接。
2.服務器響應:服務器對來自客戶端的HTTPS請求作出響應,返回包含其公共密鑰和證書發行者詳細信息的SSL證書。
3.客戶端驗證證書:客戶端(例如瀏覽器)通過驗證證書的有效性來確認其來自受信任的證書授權機構(CA),匹配其域和主題名稱。如果驗證成功,則建立連接;否則將通知用戶關於不安全連接的警告消息。
4.金鑰交換:為了啟動金鑰交換,客戶端生成一個隨機對稱金鑰,並使用服務器的公共金鑰對其進行加密,然後在到達目的地服務器時,使用其私有金鑰對其進行解密以揭示對稱金鑰集的一部分。
5.加密通信:雙方使用協商的對稱金鑰加密通信內容,提供數據傳輸安全性。
三.HTTPS的重要性:
1.隱私保護:為了保護用戶隱私,HTTPS加密用戶與網站之間的互動,確保用戶數據保持私密。
2.增強安全性:HTTPS通過身份驗證和數據完整性檢查,減少中間人攻擊的風險,提高使用此加密協議的網站的用戶信任。此外,使用HTTPS的網站在瀏覽器地址欄中顯示安全鎖定符號,進一步增加了訪問該網站的訪客的信任。
四.實施HTTPS的基本要求和步驟:
1.購買有效的SSL/TLS證書:
選擇VeriSign、Comodo或Let’s Encrypt等證書授權機構(CA),根據預算選擇最適合的價格/類型。這些可能包括域驗證(DV)、組織驗證(OV)或擴展驗證(EV)等。
對於大多數基本要求,Let’s Encrypt是一個理想的選擇,支持自動續訂,使HTTPS採用更加簡單。
2.在服務器上配置SSL/TLS證書:
根據服務器軟件配置進行安裝和設置(例如Apache、Nginx或IIS)。
安裝:安裝證書(.crt文件)和私有金鑰(.key文件),根據需要安裝來自CA的中間證書,然後自定義服務器配置文件以指定證書/私有金鑰位置、加密套件、協議版本、安全設置和安全策略。
3.確保HTTPS資源加載:
確保所有網站資源(圖片、腳本和樣式表)通過HTTPS加載,以避免引起“混合內容”問題,這將導致瀏覽器安全警告。對於外部資源(例如在您的服務器上托管的視頻或圖片),請使用安全鏈接或考慮將其本地托管,否則可能會引起瀏覽器安全警告。
4.將HTTP請求重定向到HTTPS:
配置服務器自動將所有HTTP請求重定向到HTTPS,確保用戶即使輸入HTTP URL也可以安全訪問。
5.更新網站配置和第三方服務:
在可能的情況下,使用HTTPS鏈接升級內部鏈接,並根據需要更改外部鏈接。
確保第三方服務(例如社交媒體登錄或付款網關)支持並正確配置HTTPS。
6.測試HTTPS配置:
在完全啟用HTTPS之前,使用Qualys SSL Labs的SSL服務器測試等工具進行深入檢查,以確保正確的證書安裝和服務器配置符合最佳實踐。
Nginx 部署本地產生https
本地生成在沒有域名的情況下基於ip生成如果存在域名可以基於certbot生成免費證書
1 檢查nginx是否支援配置
2 證書生成
3 生成證書
4 Nginx 設定
檢查配置項,並重新啟動
自簽名證書是一種由伺服器管理員自己創建的證書,而不是由 CA 頒發的。 、測試環境或其他不需要公眾信任的場景。證書,才能存取網站。
文章原文來源-Pythonic