Ubuntu上のApache2にSSL証明書をインストール。Let's Encryptを使おう。

Vultrで借りている Ubuntu サーバに Apache2 をインストールしています。こいつを SSL 化。無料で SSL 証明書を発行してくれる Let's Encrypt を利用します。

以前の記事でいろいろなクライアントアプリケーションを見繕ってみたのだけれど、Ubuntu 16.04 では、標準リポジトリから letsencrypt コマンドをインストールすることができるので、これを使ってみる。

# sudo apt update
# sudo apt install letsencrypt python-letsencrypt-apache

インストールが済んだらコマンドを実行。

# sudo letsencrypt --apache

ウィザードが表示されるので、いくつかの項目を設定。至って簡単。これで証明書のインストールは完了。

Ubuntu のバージョンが 18.04 ならば、letsencrypt コマンドの新しい名前・certbot を使います。

Certbot クライアントの準備|Let's Encrypt の使い方 - Let's Encrypt 総合ポータル

さて、Let's Encrypt が発行してくれる証明書の有効期間は 90 日です。つまり、およそ三ヶ月ごとに証明書を更新しなければなりません。更新期限が近づくと、letsencrypt コマンドを走らせたときに入力したメールアドレス宛に通知が届きます。届いたならば、証明書の更新。方法は…

# sudo letsencrypt renew

と、これだけ。

「ポートが空いていないので更新作業に失敗したよ」というアラートが出た場合は、renew の前に Apache を停止。そして更新後に再起動。

# sudo service apache2 stop
# sudo letsencrypt renew
# sudo service apache2 restart

らくちん。

この一連のコマンドを cron に登録しておけば更にらくちん。

"letsencrypt renew" コマンドは「更新期限が近ければ証明書を更新し、まだ充分に期間が残っていれば何もしない」という動作をします。なので極端な話、一時間ごとにこれを実行しても問題ありません。

現実的には「一週間ごとに実行し、更新を確認」という設定が良いかと。

カテゴリ: