Let’s Encrypt


Let’s Encrypt

注意点

  • 証明書の取得:ACMEプロトコルによる取得が必須です(本体にはWebページによる発行等の機能はありません)
    • 公式スクリプト
      • ターゲットWebサーバにおけるスクリプト実行が必要です
        • https://github.com/letsencrypt/letsencrypt
        • Linuxの場合、次のようなパッケージをWebサーバにインストールする必要があります(git,  python, python-devel, python-pip,  python-tools, python-virtualenv, python-setuptools, tcl, tix, tk, tkinter, python-libs, augeas-libs, dialog, libffi-devel)
    • 非公式サービス・クライアント
  • 証明書の有効期間:90日
    • cron等による自動実行が一般的には必要です
    • CDNやホスティングサービスで使用する場合は、これらサービスがLet’s encryptに対応していない限り、毎回、手作業で証明書を(Webコンソールににより)設定する必要があります

ドメインの確認方法

スクリプトによる証明書取得の前に、対象となるドメインの所持確認が必要になります。この確認方法として、公式スクリプト(letsencrypt-auto)には、以下のようなプラグインがあります(最新全リスト):

  • standalone:スクリプトがWebサーバとして稼動し、取得処理を行う
  • webroot:既存Webサーバの特定ディレクトリに認証ファイルを置く
  • manual:手作業による確認
  • apache: Apache用プラグイン経由
  • nginx:Nginx用プラグイン経由

また、非公式スクリプトでは、DNSによるドメイン確認(dns-01 challenge)に対応したものもあります

証明書

使用方法(例)

apache+certbot / Centos7

  • cetbotのインストール(githubからのclone)
    • cd /usr/local
    • git clone https://github.com/certbot/certbot
  • 証明書の生成(生成先:/etc/letsencrypt/live/ドメイン名/)
    • /usr/local/certbot/certbot-auto certonly –webroot -w /var/www/html -d www.example.com -m nabeshima@example.com –agree-tos
  • 生成された証明書の組み込み(apache.conf)
    • SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
    • SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
    • SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem
  • 月1回の強制生成(crontab)
    • 00 05 01 * * /usr/local/certbot/certbot-auto renew –force-renew && /bin/systemctl reload httpd
  • 注意点
    • ドメイン認証は、以下の様なディレクトリに認証URLを作成することにより行われる。そのため、このディレクトリはオープンにアクセスできる必要がある。
      • http://www.example.com/.well-known/acme-challenge/<randam-strings>:

参考:https://blog.apar.jp/linux/3619/