自鯖のSSL(https)化 FreeBSD設定
導入理由
最近のブラウザはhttpのものは危険サイトと表示されるようになり、SSL(https)化は不可避だなと考えていたが証明書の費用で躊躇していたら、Let’s Encryptという自鯖やっている人などに無料証明書を出してくれるところがあるらしい。
更にFreeBSD用にpkgがあるのでそれを利用してみることとする。
py27-certbot導入
pkgからpy27-certbotをインストールする。pkgなのでコマンド一つで終了。
1 |
# pkg install py27-certbot |
まずは証明書の取得を行う。これもコマンド一つ入力で終わり。メールアドレスをMLに登録するか聞いてきたのでそれの返事をするとしばらくして終了。
1 |
# certbot certonly -m webmaster@b-twin.net --agree-tos --webroot -w apacheのDocumentRoot -d www.b-twin.net |
証明書は/usr/local/etcの下にletsencryptのディレクトリが作成されており、実体はファイルはarchive/ドメイン名の下に4つのファイルがある。
Apacheの設定
SSLと証明書の設定をApacheに行う。まずは、httpd-ssl.confの設定。Certbotで取得した証明書を設定する。
1 2 3 4 5 |
SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.b-twin.net/fullchain.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.b-twin.net/privkey.pem" ServerName www.b-twin.net:443 |
次にhttpd.confの設定する。モジュールと先ほど設定したhttpd-ssl.confのコメントアウトを外して有効化する。
1 2 3 4 5 6 |
LoadModule log_config_module libexec/apache24/mod_log_config.so LoadModule setenvif_module libexec/apache24/mod_setenvif.so LoadModule ssl_module libexec/apache24/mod_ssl.so LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so Include etc/apache24/extra/httpd-ssl.conf |
念のため設定ファイルをチェックする。その後Apacheに設定を反映
1 2 3 4 5 6 7 8 9 |
# Apachectl configtest Performing sanity check on apache24 configuration: Syntax OK # apachectl graceful Performing sanity check on apache24 configuration: Syntax OK Performing a graceful restart # |
IPFの設定
外からのアクセスできる様にするため443ポートを開放する。
IPFの設定ファイルに下記を追加。
1 2 |
#SSL pass in quick proto tcp from any to any port = 443 flags S/SA group 10 |
Cron登録
証明書の有効期間が90日なので30日毎に更新をするためにCronに登録する。
1 |
# /usr/local/bin/certbot renew |