Universal Linkについて調べていて、HTTPSが必須っぽいし、今後いろいろ実験するのにもHTTPS化しておいて損はなさそうなので、静的なHTMLしか返してない自分の持っているサイトを無駄にHTTPS化した。
https://github.com/letsencrypt/letsencrypt
証明書買わなくても Let's Encrypt 使うと簡単に取得できる。コマンドラインのみで完結するのも最高。
READMEに従ってインストールする。
$ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt $ ./letsencrypt-auto --help
最後はヘルプを見てねということかと思ったら、必要なソフトウェアを自動的にインストールしてくれた。
ヘルプを見ていると Nginx 用のプラグインがありそうに見えたけど実はなかった。あきらめてREADMEにしたがって --standalone
を使う。
$ ./letsencrypt-auto certonly --standalone --email [MAIL ADDRESS] --agree-tos -d hacobun.co -d www.hacobun.co -d read.hacobun.co
作業中に80番ポートをlisten
するみたいで Nginx 起動しっぱなしだったら怒られたので一旦止める。
個人サイトなら気軽に止められる。
これだけで /etc/letsencrypt/live/hacobun.co
に証明書と秘密鍵が生成された。
あとは Nginx で443番ポートを listen
出来るようにする
server { listen 80; server_name hacobun.co www.hacobun.co; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name hacobun.co www.hacobun.co; ssl_certificate /etc/letsencrypt/live/hacobun.co/cert.pem; ssl_certificate_key /etc/letsencrypt/live/hacobun.co/privkey.pem; # .... }
http → htts のリダイレクトは id:KGA さんの記事を見てそのまま設定した。
これで Nginx をリロードすると HTTPS 化が完了した。 30分もかからなかった気がする。