Ubuntu 16.04 + Apache 2.4にLet's Encryptを設定する
海外の格安VPS、AlaphaRacksでHTTPSのHTTPサーバを立てたので、その作業録。
環境
Chinese Year Specialという年間$8のプランを契約。 Ubuntuのバージョンは16.04なのだが、カーネルのバージョンは2.6.32の古め。 そのため、dockerは使えない。
# uname -r
2.6.32-042stab127.2
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
ApacheのSSLモジュール有効化
SSLモジュールを有効化し、a2ensite
でHTTPSサイトを有効化する。
あとは設定ファイルにServerName
を追加する。
# a2enmod ssl
# vi /etc/apache2/sites-available/default-ssl.conf
ServerAdmin xxx@yyy.zzz (変更)
ServerName xxx.yyy.zzz (追加)
# a2ensite default-ssl
# service apache2 reload
Let’s Encryptのインストールと設定
# apt-get install letsencrypt python-letsencrypt-apache
Apacheを止めてから、Let’s Encryptを実行。
# service apache2 stop
# letsencrypt --authenticator standalone --installer apache
# service apache2 start
この時点でブラウザからHTTPSでアクセスできるはずなので確認。
Let’s Encryptのスクリプトがリダイレクトの設定を失敗したときは、 HTTPサイトの設定にHTTPSへのリダイレクトを追加する。
# vi /etc/apache2/sites-available/000-default.conf
Redirect "/" "https://****/" (追加)
# service apache2 restart
cronへの追加
Let’s Encryptの証明書は有効期限が3ヶ月なので、定期的にスクリプトを実行する必要がある。 cronで定期的に実行するように設定する。
# crontab -e
0 0 1 * * service apache2 stop; letsencrypt renew; service apache2 start