2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

無料でHTTPS対応!Let’s EncryptでSSL/TSLに対応する

Last updated at Posted at 2016-10-22

概要

Let's EncryptGoogleやCiscoなどメジャーな企業がスポンサーをしている信頼性のあるオープンで無料のTSL(SSL)認証局(CA)。
しかも、ツールが提供されており、簡単に証明書をインストールできる。
つまり、簡単無料でオレオレ証明書を卒業して、サーバでhttpsが使えるということ!

ここでは、ubuntu x apacheを前提にする。

手順

  • はじめはマニュアルでcertbot-autoを実行してインストール。
  • あとはrenewサブコマンドをcronで毎日実行する。

これで、毎日のrenew実行で、サーバにインストールした証明書の内、更新がものだけ更新してくれる。

準備

対象となるドメインがhttpでアクセス可能である必要がある。
細かいことは、この記事を見ている時点でわかっていると思うので割愛する。

  • 対象のドメインが目的のサーバに向くようにレコードを設定する
  • /etc/apache2/sites-availableに通常のhttpでの設定ファイルを作成
  • サイトを有効にする
$ sudo a2ensite 000-your-site.conf
  • アパッチを再起動する(なぜかrestartではだめだった)
$ sudo apache2ctl stop
$ sudo apache2ctl start

ブラウザでドメインにアクセスして配置した.htmなどが表示されればOK。

ここからが、本題。

証明書のインストール

ツールのインストール

どこでもいいが、とりあえずホームディレクトリにインストールする

$ cd
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto

証明書インストール&設定修正

全部自動でやってくれる!

$ ./certbot-auto --apache

/etc/apache2/sites-availableからサイトを自動検出するので、SSLを導入したいサイトに*をつける。
スペースキーで*のON/OFF切り替えが可能。

certbot1.png

easyとsecureのどちらでやるか聞かれるが、secureを選んでも特にやることはない。

これでhttpsでアクセスできるようになった。
下記のURLでd=以降にSSLを導入したドメインを指定してブラウザで読み込むと、httpsのステータスレポートを見ることができる。
https://www.ssllabs.com/ssltest/analyze.html?d=your-site.com

certbot2.png

うん、安全そうだw

ちなみに、/etc/apache2/sites-availableの.confファイルを見ると、httpsの設定のための修正がされていることがわかる。もし、勝手にファイルを修正されたくなければ、certbot-autoコマンドにcertainlyサブコマンドを付けてやれば、設定を変更せずに証明書のインストールだけやってくれる。

証明書の自動更新設定

certbot-auto renewコマンドをcronで定期的に実行することで、証明書を自動更新してくれる。
有効期限が30日以下の証明書のみを判別して更新してくれる。

crontab -eコマンドで下記のように設定する。
この例では毎日12:34にcertbot-autoコマンドを実行させている。

34 12 * * * /home/ubuntu/certbot-auto renew --quiet --no-self-upgrade >> /tmp/cron.log 2>&1

自動更新設定はこれだけ。

cronのトラブルシューティング

話がそれるがハマったので注意点を幾つか。

  • Linuxディストリビューションによっては、crontabの設定で出力をリダイレクトしないと実行されない場合がある。
    上記の例では2>&1でエラーを標準出力にリダイレクト、標準出力を/tmp/cron.logに吐き出している。
  • /etc/letsencrypt/cli.iniにドメインなど、設定を記述することで非インタラクティブなインストールが可能だが、ここでドメインを指定してしまうと、今のバージョンではcertbot-aut renewでエラーになってしまう(参考)。なので、.iniファイルを使用することはおすすめしない。
  • ログは/var/log/letsencrypt/letsencrypt.logに吐かれるので、動作しないようならこちらをチェック。
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?