去年11月底開始着手使用https來代替http,提高安全性,同時也能避免網絡運營商的廣告。由於用的阿里雲的全家桶(ECS+域名+CDN+OSS+直播等),正好看到阿里雲上有免費的SSL證書,雖然有一年的期限,但想着先上了再說,一年以後,也許就全免費了呢。這一年期間,使用阿里雲的免費證書也是各類坑,首先不知道每一個帳戶只有20個(去年這個時候是連說明都沒有的,不留工單問,沒人知道),就一個勁的申請,結果浪費了不少(好像是說審覈關閉的,仍是吊銷的,也佔用1個指標,我去)。nginx
今年9月份的時候,微信公衆號端又要開發一些東西,就新搭了服務器,可是不想去折騰阿里雲的免費SSL證書了。正好,let's的免費證書的工具也比去年有更新,不少瀏覽器都支持了,聽說明年還支持泛域名,因此,就考慮用這個啦。至於其餘的簽發商更安全啊,更有名啊,更屌B啊,好比說加密算法之類更牛啊等,這些就不考慮了,反正let's的目前徹底夠用了,又不是每天有幾百萬的資金經過項目流動(流汗)。至於let's一次簽發90天的問題,一個crontab就解決。web
1)安裝let's(基於centos,其餘系統大同小異)算法
yum install epel-release cd /data/certificate wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
說明,./certbot-auto -n只是用來安裝依賴包的,也能夠跳過直接到下面的生成證書的步驟,國內VPS或服務器上使用的話建議先修改成國內的pip源。centos
2)生成證書
首先要將相應的域名,解析到服務器。(如本例中的www.chen.net)
單域名生成證書:瀏覽器
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net
多域名單目錄生成單證書:(即一個網站多個域名使用同一個證書)安全
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net
多域名多目錄生成一個證書:(即一次生成多個域名的一個證書)bash
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net -w /data/wwwroot/web -d www.chen.cn -d chen.cn
3)結果服務器
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.chen.net/fullchain.pem. Your cert will
expire on 2018-02-15. To obtain a new or tweaked version of this
certificate in the future, simply run certbot-auto again. To
non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:微信
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le網絡
就是生成成功。
4)配置nginx
注意圖中紅色部分,請使用 fullchain.pem(不是chain.epm),替換掉原來阿里雲下載的pem,不然的話,在安卓端,會出現打開空白的問題。
5)配置crontab
* * * */1 * /data/certificate/certbot-auto renew --disable-hook-validation
6)在阿里雲上,OSS和CDN的配置上,選擇直接輸入證書內容替換原來直接選擇的阿里雲證書,就能夠了。
注意事項:
一、由於默認環境是不容許訪問以"."開頭的隱藏文件及目錄的,因此訪問http://abc.com/.well-known/acme-challenge/**** 這個連接的話返回403錯誤,因此必需要將對應虛擬主機配置文件裏的
location ~ /\.
{
deny all;
}
這段配置刪掉或註釋掉或在這段配置前面加上
location ~ /.well-known {
allow all;
}
以上配置代碼,而後重啓nginx。