Lets Encryptについて
参考:https://ssl.sakura.ad.jp/column/free-or-paid/
無料でも問題ないのか?
同じSSL証明書である以上、強度は同等らしい。
何故無料で運営できているのか?
Lets Encryptは寄付により運用できている。
無料であることのデメリットは?
フィッシングサイトなどで悪用される場合がある。このため永久的に暗号化を保証できるか微妙ではある。
90日で更新が必要。なので自動化が必要になる。
寄付なので、サービス終了が起こり得るリスクがある。
導入手順
これに従って行う。
https://letsencrypt.jp/usage/
mod_sslの確認
このコマンドで、
# httpd -M
この表示があればOK.
ssl_module (shared)
443ポートの確認
iptableで開放されているか確認。
iptables -L
httpsの表示があればOK。
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Certbot クライアント準備
Epelを有効に
yum install epel-release
certbot-autoをインストール
# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto
# ./certbot-auto
./certbot-auto を実行することで、必要なパッケージがダウンロードされる。
その後自動的に対話式で証明書作成が始まる。
virtualhost設定を取得してドメインリストが表示されるので、該当のものを選択してEnter.
成功すると以下のような表示に。
Congratulations! You have successfully enabled xxxx.com~
pemファイルの格納場所や有効期限も記される。
pemは、以下にあるらしい。
/etc/letsencrypt/live/
sslの設定ファイルも自動生成されるみたい。
/etc/httpd/conf.d/xxxxxxx.com-le-ssl.conf
で、アクセスしてみるのだが、
Virtualhostが反映されない。。。
いろいろ調べたところ、自動生成されるSSL用confファイルの、ここだった。。
<IfModule mod_ssl.c>
<VirtualHost *:443>
</VirtualHost>
</IfModule>
これを
#<IfModule mod_ssl.c>
<VirtualHost *:443>
</VirtualHost>
#</IfModule>
これでOK.
mod_sslは入っているはずなのだが、
どういう意味だったのだろう。。。
とにかく、これでSSL化はOK.
あとはSSLへのリダイレクトを各サイトへ設定し、
自動更新の設定だな。
再度作成
ドメインが変更したり、再作成が必要なときは、
sudo /var/www/certbot-auto
これだけでOK.
自動更新設定
更新は、このコマンド一発でいけそう。
sudo /var/www/certbot-auto renew --post-hook "sudo service httpd restart"
Cert not yet due for renewal なので何も起こらないが、動作しているようだ。
あとはcronに設定して、様子を見る。
cronの実行確認
/etc/rc.d/init.d/crond status
cronの設定。
毎週月曜の0時に実行。
root権限で、
# crontab -e
00 00 * * 1 /var/www/certbot-auto renew --post-hook "sudo service httpd restart"
確認
# crontab -l
00 00 * * 1 /var/www/certbot-auto renew --post-hook "sudo service httpd restart"
これで自動化されるだろう。
メール飛ばす機能もつけたいがまた今度。