使用 certbot 申請泛域名https證書

使用 certbot 申請泛域名https證書

Intro

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

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

手動驗證 DNS

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

    $ 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 證書web

    安裝好 certbot 以後,在命令行中執行如下命令:shell

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

    執行完命令以後會提示須要記錄 IP 信息,須要贊成否則不能繼續申請windows

  3. 設置 DNS TXT 記錄api

    按照提示,在本身的域名服務商那裏添加或者修改 _ache-challenge 的 txt 記錄,修改以後須要驗證是否解析成功,驗證方式詳見後面,驗證解析成功以後輸入 Enter 鍵繼續bash

  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

Reference

相關文章
相關標籤/搜索