がらくたネット


Let's Encrypt

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!!

完了

FirstServerのZenlogicはLet's Encryptに対応済み!

更新

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