あーく・りなっくす

プログラミングとかガジェットとかの雑記

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

この証明書の更新もコマンドを利用して行えるので、次は自動化なども行っていこうと思う。