Appleが2017年の1月から全てのアプリでATSを必須にするっぽい、ということで今更ながらSSL対応することに。
以前から目をつけていた、Let’s Encryptを使ってみようということで、そのメモです。

Let’s EncryptはInternet Security Research Group (ISRG) が提供している無料の認証局です。

すでに独自ドメインにてwebサーバーが稼働しているサーバー(CentOS6+apache2.2)を対象に一気にSSL化します。

cd /usr/local/
git clone https://github.com/certbot/certbot

cd certbot/
./certbot-auto

./certbot-auto certonly --webroot \
-w /path/to/www \
-d example.com \
-m info@example.com \
--agree-tos

これで
/etc/letsencrypt/
以下に必要なファイルができるので、httpd.confに

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

などと加えて完了。後は、
・ファイヤウォール等で443を開けてやる
・apacheにmod_ssl等が無ければ加える
・httpd.confで443をLISTENする
あたりを忘れずに。

あと、証明書の有効期限が90日程度なので、定期的に更新する必要があるようです。

更新のテスト

/usr/local/certbot/certbot-auto renew --force-renew --dry-run

crontabに登録

crontab -e

00 05 01 * * /usr/local/certbot/certbot-auto renew --force-renew && /etc/init.d/httpd2 restart

割と簡単♪

安全性のチェックなど
SSL Server Test – QUALYS SSL LABS

メジャーなHTTPサーバー向けに最適なSSL configを生成してくれる
Mozilla SSL Configuration Generator

参考
Let’s Encrypt サーバー証明書の取得と自動更新設定メモ – あぱーブログ
Let’s Encrypt で手軽に HTTPS サーバを設定する – Qiita
Let’s Encrypt の使い方
Webに接続するiOSアプリは2017年1月からHTTPSの使用が絶対条件になる、デベロッパーはご注意を = TechCrunch