使用 certbot 申請泛域名https證書


使用 certbot 申請泛域名https證書

Intro

Certbot 是一個基於 Let's Encrypt 的自動化申請證書的工具,支持的系統和web server也很多,詳見 Certbot 官網

Certbot 有一些 dns 插件可以自動化的不需要手動設置 dns 等方式來驗證域名的所屬,但是基本是一些國外的大型 DNS 提供商的,針對國內的話通過DNS驗證的話還是需要手動驗證DNS記錄,這里主要介紹手動驗證,通過DNS插件自動驗證請參考 certbot 官網

手動驗證 DNS

  1. 安裝 Certbot,具體步驟參考官網

    $ sudo apt-get update
    $ sudo apt-get install software-properties-common
    $ sudo add-apt-repository universe
    $ sudo add-apt-repository ppa:certbot/certbot
    $ sudo apt-get update
    $ sudo apt-get install certbot python-certbot-nginx
    
  2. 申請 HTTPS 證書

    安裝好 certbot 之后,在命令行中執行以下命令:

    sudo certbot certonly  -d "*.weihanli.xyz" -d weihanli.xyz --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory
    

    執行完命令之后會提示需要記錄 IP 信息,需要同意不然不能繼續申請

  3. 設置 DNS TXT 記錄

     

     

    按照提示,在自己的域名服務商那里添加或者修改 _ache-challenge 的 txt 記錄,修改之后需要驗證是否解析成功,驗證方式詳見后面,驗證解析成功之后輸入 Enter 鍵繼續

  4. 證書申請成功

     

     

    如果出現這樣的提示就說明證書已經申請成功了

  5. 配置 web server

    證書申請成功了就基本搞定了,有了證書之后就在服務器上配置一下就可以了

    nginx 配置示例:

    server {
      listen 80;
      listen 443;
      ssl_certificate            /etc/letsencrypt/live/weihanli.xyz/fullchain.pem;
      ssl_certificate_key      /etc/letsencrypt/live/weihanli.xyz/privkey.pem;
      if ($scheme = http) {
          return  301 https://$host$request_uri;
      }
      server_name weihanli.xyz;
    }
    

    重新加載 web 服務器配置或者重新重啟web服務器以加載新證書,這里以重新加載 nginx 配置為例

    sudo nginx -s reload
    

驗證 DNS TXT 記錄

windows 系統上在命令行或 powershell 中執行以下命令:

nslookup -q=txt _acme-challenge.weihanli.xyz
 

  

注意生成的證書如果想在IIS里面用 需要導出pfx格式,方法如下

openssl pkcs12 -export -out domain.pfx -inkey privkey.pem -in  fullchain.pem

當然需要提前安裝openssl

 

Reference

 


免責聲明!

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



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