Let's Encrypt
Lets' EncryptによるSSL証明書の自動取得・自動更新に関するメモを残す。
- Let's Encrypt 自体、まだまだ未完成のところがあるので、今後の改善によっては本記述が間に合わないことがある。
- その場合は本家のドキュメントを確認して欲しい。
- 例えば、letsencrypt コマンドは今では certbot コマンドに変わっている。
- しかし FreeBSD では2016年05月29日現在、従来通り、letsencrypt コマンドのまま維持されているため、その前提で話を進める。
- また運用環境が極端に違うことから、FreeBSD 環境での解説のみとし、CentOS 環境での解説は行わない。
- 将来もう少し、環境差違が無くなってから解説するつもりある。
- 現時点では初期運用については差違が無いが、自動運転するにはやることが多すぎるためである。
インストール
- ports ないしは packages から、以下の ports をインストールする。
一般的には ports/security/letsencrypt.sh よりも ports/security/py-letsencrypt を使う事例の方が多いが、今回は使わない。
- この事情は ports メンテナの功績によるものなので:-)、他の環境でそうであるかは不明である。
準備
- いくつかのディレクトリの作成および設置ルールを決める。
- これは本家(ports/security/py-letsencrypt)の作法とは相違があるためである。
証明書の設置場所
- ports/security/letsencrypt.sh では /usr/local/etc/letsencrypt.sh/certs/コモンネーム/ 以下のファイルが設置される。
- /usr/local/etc/letsencrypt.sh/certs/コモンネーム/cert-エポックタイム.csr
- /usr/local/etc/letsencrypt.sh/certs/コモンネーム/cert-エポックタイム.pem
- /usr/local/etc/letsencrypt.sh/certs/コモンネーム/chain-エポックタイム.pem
- /usr/local/etc/letsencrypt.sh/certs/コモンネーム/fullchain-エポックタイム.pem
- /usr/local/etc/letsencrypt.sh/certs/コモンネーム/privkey-エポックタイム.pem
- これは本家の /usr/local/etc/letsencrypt/archive/コモンネーム/ に相当するディレクトリとなる。
- 設置場所についてはプログラム中に直接記載されているため、変更は不可能である。
- また、本家の /usr/local/etc/letsencrypt/live/コモンネーム/ に相当するディレクトリは無く、上記ディレクトリにて、直接、最新の証明書に対してシンボリックリンクが張られる。
# cd /usr/local/etc/letsencrypt.sh/certs/コモンネーム # ls -alF total 122 -rw------- 1 root wheel 436 May 29 06:02 cert-1464469337.csr -rw------- 1 root wheel 1533 May 29 06:02 cert-1464469337.pem lrwx------ 1 root wheel 19 May 29 06:02 cert.csr@ -> cert-1464469337.csr lrwx------ 1 root wheel 19 May 29 06:02 cert.pem@ -> cert-1464469337.pem -rw------- 1 root wheel 1647 May 29 06:02 chain-1464469337.pem lrwx------ 1 root wheel 20 May 29 06:02 chain.pem@ -> chain-1464469337.pem -rw------- 1 root wheel 3180 May 29 06:02 fullchain-1464469337.pem lrwx------ 1 root wheel 24 May 29 06:02 fullchain.pem@ -> fullchain-1464469337.pem -rw------- 1 root wheel 302 May 29 06:02 privkey-1464469337.pem lrwx------ 1 root wheel 22 May 29 06:02 privkey.pem@ -> privkey-1464469337.pem