概述
本文介紹如何通過 Certbot 安裝 Https Letsencrypt 證書
先決條件
1、擁有一個(gè)域名燕差,例如 mydomain.com
2遭笋、在域名服務(wù)器創(chuàng)建一條A記錄,指向云主機(jī)的公網(wǎng)IP地址徒探。例如 demo.mydomain.com 指向 192.168.0.1 的IP地址
3瓦呼、要等到新創(chuàng)建的域名解析能在公網(wǎng)上被解析到
安裝 Certbot
前往 Certbot 官網(wǎng)按照步驟安裝 certbot
或者直接獲取自動(dòng)安裝腳本,然后在按如下兩種模式生成證書
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto # 給腳本執(zhí)行權(quán)限
Certbot 兩種生成證書的方式
certbot 模式(推薦)
certbot 會(huì)啟動(dòng)自帶的 nginx(如果服務(wù)器上已經(jīng)有nginx或apache運(yùn)行刹帕,需要停止已有的nginx或apache吵血,因?yàn)榘惭b過程中可能需要用到80端口做校驗(yàn))生成證書
首先谎替,刪除舊的證書文件(如果存在 /etc/letsencrypt/live/xxx.xxx.com/)
rm -rf /etc/letsencrypt/live/xxx.xxx.com/
執(zhí)行
./certbot-auto certonly --standalone -d example.com -d www.example.com
或者
./certbot-auto certonly --standalone -d www.example.com
webroot 模式
1偷溺、配置驗(yàn)證目錄
server {
listen 80;
server_name 127.0.0.1;
location / {
root /var/www/example;
index index.html;
}
}
2、重啟 nginx
nginx -t // 檢查nginx配置文件是否正確
nginx -s reload // 使配置生效
service nginx restart // 重啟 nginx
3钱贯、執(zhí)行 certbot 腳本生成證書
certbot certonly --webroot -w /var/www/example/ -d www.example.com -d example.com -w /var/www/other -d other.example.net -d another.other.example.net
certbot會(huì)生成隨機(jī)文件到給定目錄(nginx配置的網(wǎng)頁目錄)下的/.well-known/acme-challenge/目錄里面挫掏,并通過已經(jīng)啟動(dòng)的nginx驗(yàn)證隨機(jī)文件,生成證書
證書應(yīng)用
通過以上方式生的成證書及 privkey 等文件一般位于 /etc/letsencrypt/live/example.com/
下:
文件 | 描述 |
---|---|
cert.pem | 服務(wù)器證書 |
chain.pem | 包含Web瀏覽器為驗(yàn)證服務(wù)器而需要的證書或附加中間證書 |
fullchain.pem | cert.pem+chain.pem |
privkey.pem | 證書的私鑰 |
在 Nginx 使用證書
在 sites-available/default
中的 server
節(jié)點(diǎn)下添加:
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
續(xù)期
certbot renew --dry-run