Let’s Encrypt
Let’s Encrypt是一個提供免費TLS認證的網站,超過2600w的網站都在使用,其可以配合nginx,為網站生成ssl證書,提供https訪問,Let’s Encrypt的證書有效期為90天,可以搭配systemd定時任務,定時更新證書,
PS:本操作基于Centos8和python3
證書申請
- 安裝epel源
$ sudo dnf install epel-release
- 安裝certbot
$ sudo dnf install certbot python3-certbot-nginx
因為我用的nginx作為http服務器,如果是apache,安裝apache的插件,如下:
$ sudo dnf install certbot python3-certbot-apache
- 申請證書
$ sudo certbot --nginx --nginx-server-root=/home/farm/nginx/conf certonly
PS:我安裝的nginx目錄在用戶家目錄下,需要將nginx放入環境變數,或者是建立一個軟鏈接,保證nginx命令可以正常執行,我用的是建立軟鏈接的方案
$ sudo ln -s /home/farm/nginx/sbin/nginx /usr/bin/nginx
- 證書生成

證書申請程序中,需要填寫郵箱,和確認條款,就是上圖示注1,2,3處,最后選擇需要申請證書的域名,如果全部都生成,直接回車即可,
- 配置證書
#生成的證書都在/etc/letsencrypt/live/<domain>目錄下,<domain>為申請的域名
在nginx.conf檔案中添加以下配置
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
proxy_pass http://127.0.0.1:8080 # 僅做示例
}
- 證書自動更新
更新證書腳本
$ vim renew_ssl.sh
#寫入以下內容
$ certbot renew
創建systemd定時任務
a. 創建Service單元
$ cd /etc/systemd/system
$ sudo vim renew_ssl.service
寫入以下內容:
[Unit]
Description=certbot renew
[Service]
ExecStart=/bin/bash /home/farm/nginx/sh/renew_ssl.sh
啟動Service單元
$ sudo systemctl start renew_ssl.service
b. 創建Timer單元
$ cd /etc/systemd/system
$ sudo vim renew_ssl.timer
寫入以下內容:
[Unit]
Description=run renew_ssl.sh every 12 hours
[Timer]
OnUnitActiveSec=43200s
Unit=renew_ssl.service
[Install]
WantedBy=multi-user.target
啟動Timer單元
$ sudo systemctl daemon-reload
$ sudo systemctl enable renew_ssl.timer
$ sudo systemctl start renew_ssl.timer
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292908.html
標籤:其他
上一篇:nginx+keepalive雙VIP高可用搭建配置
下一篇:centos7配置Nginx
