Let's Encrypt を使って https 対応
https 対応している Web ページが増えてきたので、自分のものも対応したくなった。お金がかかるのはつらいと思っていたが、Let's Encrypt を使えば無料で SSL/TLS 証明書を発行できるということなので、利用してみた。
—
Let's Encrypt クライアントのインストール
リポジトリから clone し、クライアントを実行する。
初回実行時には、必要なパッケージをインストールしてからクライアントが実行される。そのため、初回はヘルプなどを表示するようにしておいた方がいいかもしれない。
$ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt/ $ ./letsencrypt-auto --help
証明書の取得
DNS の設定
TCP/80 に対してアクセスしてくるので、そのポートを開放しておく必要がある。 あとは、証明書を発行したいドメインの A レコードに導入するサーバのグローバルな IP アドレスを設定しておく必要がある。
Let's Encrypt
コマンドを実行する前に Web サーバなどを止めておく。
$ ./letsencrypt-auto certonly -a standalone \ -d domain1 -d domain2
実行するとメールアドレスの入力を求められる。 ちなみに Web サーバ(80 番を使っているもの)を止めていないと、怒られる。
nginx の設定
既にある設定に追加する。https のみにしたい場合は、80 でのアクセスを https へリダイレクトさせるという方法もとることができる。
server { listen 443 ssl; server_name <ドメイン>; ssl_certificate /etc/letsencrypt/live/<ドメイン>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<ドメイン>/privkey.pem; location / { # 省略 } }
設定を追加したら reload をする。
$ sudo service nginx reload
—
この証明書の更新もコマンドを利用して行えるので、次は自動化なども行っていこうと思う。