CentOS7下使用Certbot+Nginx搭建Https環境


Let's Encrypt是一個為網站提供免費的SSL/TLS證書的機構。官方推薦使用Certbot工具進行簽發。Certbot可自動簽發Let's Encrypt證書,但證書有效期只有三個月,可以通過配置定時任務進行自動續期,以此實現永久生效的https環境。

本文使用Certbot+Nginx進行單域名和泛域名的https環境搭建。

單域名證書:只能保護一個域名,可以是頂級域名也可以是二級域名

泛域名證書:也叫通配符證書,可以保護一個域名及該域名下所有二級域名,不限制下級域名數量

1. 安裝Certbot

yum install certbot python2-certbot-nginx

2. 安裝單域名證書

2.1 自動配置nginx

運行如下命令會自動下載證書並配置nginx。未測試

certbot --nginx

2.2 手動配置nginx

運行如下命令會自動下載證書但需要自己配置nginx。已測試

  • 生成證書並下載
certbot certonly --nginx

若nginx未安裝在默認路徑(/etc/nginx or /usr/local/etc/nginx)下需自己指定nginx路徑,到conf目錄

certbot certonly --nginx --nginx-server-root=/root/nginx/conf
  • 輸入證書相關信息
    在這里插入圖片描述

  • 查看證書存儲位置
    在這里插入圖片描述

  • 配置nginx
    在這里插入圖片描述

  • 重啟nginx

    若此前nginx已配置https,直接使用nginx -s reload即可

    若此前nginx未配置https,需要將nginx進程kill掉,然后使用nginc -c 配置文件路徑進行啟動

  • 此時用已配置的域名進行https訪問正常

3. 安裝泛域名證書

按照如下步驟生成泛域名證書。已測試

  • 使用泛域名生成證書。

    *.test.com替換為自己的泛域名即可

    certbot certonly --preferred-challenges dns --manual -d *.test.com --server https://acme-v02.api.letsencrypt.org/directory
    
  • 查看驗證信息。先不要回車
    在這里插入圖片描述

  • 添加域名解析,以阿里雲為例
    在這里插入圖片描述

  • 驗證解析成功
    在這里插入圖片描述

  • 回到使用泛域名生成證書的界面,回車,等待完成
    在這里插入圖片描述

  • 配置nginx
    在這里插入圖片描述

  • 重啟nginx

    若此前nginx已配置https,直接使用nginx -s reload即可

    若此前nginx未配置https,需要將nginx進程kill掉,然后使用nginc -c 配置文件路徑進行啟動

  • 此時使用滿足泛域名條件的域名進行https訪問均正常。

4. 續期

配置定時任務進行續期。未測試

echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM