| SSL(安全套接層,Secure Sockets Layer),及其繼任者 TLS (傳輸層安全,Transport Layer Security)是為網絡通信提供安全及數據完整性的一種安全協議。TLS 與 SSL 會在傳輸層對網絡連接進行加密。 |

通過 SSL 加密,網站與用戶之間的數據交互會更加安全,能夠避免大多數的網絡竊聽問題。通常在登錄以及涉及交易等安全要求比較高的情況下,應該要求強制 SSL 加密。
實際上,僅僅在登錄頁面提供 SSL 並不能真正解決安全問題,在公共 Wi-Fi 等公開環境下,攻擊者依舊能夠獲得用戶的登錄 cookie 從而假冒用戶身份,因此對網站進行全站加密是很有必要的。
2015 年,豆瓣、百度等眾多網站終於在難以忍受運營商劫持以及嵌入廣告等問題后,開啟了全站 HTTPS,是國內 HTTPS 應用的一大里程碑。
Let's Encrypt 是由互聯網安全研究小組(ISRG,一個公益組織)於 2015 年末推出的數字證書認證機構,將通過旨在消除當前手動創建和安裝證書的復雜過程的自動化流程,為安全網站提供免費的 SSL/TLS 證書。
Let's Encrypt 的使用相對簡單,並且完全免費,是很多中小網站的首先。
根據官方介紹,Certbot 是一個簡單易用的 SSL 證書部署工具,由 EFF 開發,前身即 Let’s Encrypt 官方(Python)客戶端。Certbot 同時也支持其它支持 ACME 協議的 CA。
簡單來說,cerbot 就是一個簡化 Let's Encrypt 部署,和管理 Let's Encrypt 證書的工具。
cerbot/Let's Encrypt 支持眾多 Linux 發行版,也支持 BSD 平台,可直接使用相應的包管理工具進行安裝:
Ubuntu 16.04
sudo apt-get install letsencrypt -t jessie-backports # Debian 8
sudo apt-get install letsencrypt # Debian testing/unstable
sudo dnf install letsencrypt # Fedora
sudo pacman -S letsencrypt # Arch
Ubuntu 14.04、CentOS、BSD 以及 Mac 下可以通過腳本安裝:
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
certbot-auto certonly # 如果安裝的是 letsencrypt 把 certbot-auto 替換成 letsencrypt 即可
certbot-auto renew --quiet # CentOS/RHEL
# 將所有 HTTP 請求指向 HTTPS
server {
server_name example.com;
listen 80;
return 301 https://$server_name$request_uri;
}
# 監聽 HTTPS 請求
server {
server_name example.com;
listen 443 ssl;
# TLS 基本設置
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 網站的其它設置不變
# [...]
}
