Let's Encrypt
Let's Encryptの導入
2015/12/04に公開ベータになったので、誰でも取得可能になった
日本語サイト
他証明書との大きな違いは、金額が\0って事と有効期限が90日って事
有効期限については自動更新ツールで対応してねっ♪ってことらしい
インストールから
Let's Encryptクライアントのインストール
足りないモジュールがあれば自動インストールするのでroot権限が必要
必要なモジュールは有無を言わさずインストールされるので要注意!
最終、ヘルプが表示されればOK
Python2.6は古いってWarningが出るので気をつける
git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt ./letsencrypt-auto --help
証明書を取得するにはDNS設定がポイント
ドメイン名を正引きして得られたIPアドレスのポート80に接続して
ドメイン所有者を確認する
この時、80を開けてるプロセスを停止してLets's Encrypt Client内蔵の
webサーバが起動してドメイン所有者を確認している
これ超危険!
だって既存Webサイトが停止するんだよ…
そこで
Webrootプラグインを有効にすることで証明書取得時に
80ポートを一時的に停止する必要がなくなる
webrootはドキュメントルートにドメイン使用権者の認証用ファイルを自動設置して letscryptクライアント経由でドメイン使用権を確認する方式だそうだ
./letsencrypt-auto certonly --webroot \ -w /var/www/vhosts/e-garakuta.net/html \ -d e-garakuta.net -d www.e-garakuta.net
メールアドレス入力画面が表示される
このアドレスは通知や鍵紛失時の復旧に使用される
利用規約同意画面ではAgree!!
完了
更新
Let's Encryptの証明書は更新がポイント
証明書有効期間が90日
コマンドは新規取得時と同じだが、メアド等を要求するので 要求しないようにコマンドオプションを設定する必要あり
ファイルの実体
サーバ証明書 | /etc/letsencrypt/archive/ドメイン名/certN.pem |
中間証明書 | /etc/letencrypt/archive/ドメイン名/chainN.pem |
サーバ証明書と中間証明書の結合ファイル | /etc/letencrypt/archive/ドメイン名/fullchainN.pem |
秘密鍵 | /etc/letencrypt/archive/ドメイン名/privkeyN.pem |
このNは連番が入る
ファイルのシンボリックリンク
サーバ証明書 | /etc/letsencrypt/live/ドメイン名/cert.pem |
中間証明書 | /etc/letencrypt/live/ドメイン名/chain.pem |
サーバ証明書と中間証明書の結合ファイル | /etc/letencrypt/live/ドメイン名/fullchain.pem |
秘密鍵 | /etc/letencrypt/live/ドメイン名/privkey.pem |
サーバへの設定はシンボリック側で実施する
cronに設定するならこれかな
00 02 01 * * /usr/local/letsencrypt/letsencrypt-auto renew --force-renew && /bin/systemctl reload httpd