SSL(安全套接層,Secure Sockets Layer),及其繼任者 TLS (傳輸層安全迟赃,Transport Layer Security)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議秒旋。TLS 與 SSL 會在傳輸層對網(wǎng)絡(luò)連接進行加密。
SSL的用處
通過 SSL 加密竞滓,網(wǎng)站與用戶之間的數(shù)據(jù)交互會更加安全,能夠避免大多數(shù)的網(wǎng)絡(luò)竊聽問題吹缔。通常在登錄以及涉及交易等安全要求比較高的情況下商佑,應(yīng)該要求強制 SSL 加密。
實際上厢塘,僅僅在登錄頁面提供 SSL 并不能真正解決安全問題茶没,在公共 Wi-Fi 等公開環(huán)境下,攻擊者依舊能夠獲得用戶的登錄 cookie 從而假冒用戶身份晚碾,因此對網(wǎng)站進行全站加密是很有必要的抓半。
2015 年,豆瓣格嘁、百度等眾多網(wǎng)站終于在難以忍受運營商劫持以及嵌入廣告等問題后笛求,開啟了全站 HTTPS,是國內(nèi) HTTPS 應(yīng)用的一大里程碑糕簿。
Let's Encrypt 是什么探入?
Let's Encrypt 是由互聯(lián)網(wǎng)安全研究小組(ISRG,一個公益組織)于 2015 年末推出的數(shù)字證書認證機構(gòu)懂诗,將通過旨在消除當前手動創(chuàng)建和安裝證書的復(fù)雜過程的自動化流程蜂嗽,為安全網(wǎng)站提供免費的 SSL/TLS 證書。
Let's Encrypt 的使用相對簡單殃恒,并且完全免費植旧,是很多中小網(wǎng)站的首先。
certbot 是什么离唐?
根據(jù)官方介紹病附,Certbot 是一個簡單易用的 SSL 證書部署工具,由 EFF 開發(fā)侯繁,前身即 Let’s Encrypt 官方(Python)客戶端胖喳。Certbot 同時也支持其它支持 ACME 協(xié)議的 CA。
簡單來說贮竟,cerbot 就是一個簡化 Let's Encrypt 部署丽焊,和管理 Let's Encrypt 證書的工具较剃。
安裝和使用
安裝
cerbot/Let's Encrypt 支持眾多?Linux?發(fā)行版,也支持 BSD 平臺技健,可直接使用相應(yīng)的包管理工具進行安裝:
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 即可
自動續(xù)期
certbot-auto renew --quiet # CentOS/RHEL
部署 Nginx
# 將所有 HTTP 請求指向 HTTPS
server {
server_name example.com;
listen 80;
return 301 https://$server_name$request_uri;
}
# 監(jiān)聽 HTTPS 請求
server {
server_name example.com;
listen 443 ssl;
# TLS 基本設(shè)置
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 網(wǎng)站的其它設(shè)置不變
# [...]
}