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)
- ターゲットWebサーバにおけるスクリプト実行が必要です
- 非公式サービス・クライアント
- 公式スクリプト
- 証明書の有効期間:90日
- cron等による自動実行が一般的には必要です
- CDNやホスティングサービスで使用する場合は、これらサービスがLet’s encryptに対応していない限り、毎回、手作業で証明書を(Webコンソールににより)設定する必要があります
ドメインの確認方法
スクリプトによる証明書取得の前に、対象となるドメインの所持確認が必要になります。この確認方法として、公式スクリプト(letsencrypt-auto)には、以下のようなプラグインがあります(最新全リスト):
- standalone:スクリプトがWebサーバとして稼動し、取得処理を行う
- webroot:既存Webサーバの特定ディレクトリに認証ファイルを置く
- manual:手作業による確認
- apache: Apache用プラグイン経由
- nginx:Nginx用プラグイン経由
また、非公式スクリプトでは、DNSによるドメイン確認(dns-01 challenge)に対応したものもあります
証明書
- IdenTrustへのクロスルート
- IdenTrustのルート証明書:DST Root CA X3
- Digital Signature Trust (DST):IdenTrust社の旧社名
- テストサイト:https://sha2ssl-trustidvalid.identrustssl.com/
- 各社サポート状況:
- IdenTrustのルート証明書:DST Root CA X3
使用方法(例)
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>:
- ドメイン認証は、以下の様なディレクトリに認証URLを作成することにより行われる。そのため、このディレクトリはオープンにアクセスできる必要がある。
参考:https://blog.apar.jp/linux/3619/