はじめに
Let’s encryptのおかげで無料でかつ簡単にSSL/TLS証明書を取得できるようになりましたので、個人でも手軽にSSL/TLS証明書が利用できるようになりました。
そこで本記事では、今まで自己署名証明書(いわゆる「オレオレ証明書」)でこっそり運用していたドメイン用のSSL/TLS証明書を取得し、すでに別のドメインのSSL/TLS証明書がインストールされているサーバに追加でインストールしてみます。
SSL/TLS証明書のインストール
root権限でシェルのコマンドプロンプトからLet’s encryptのページに記述されている通りに以下のコマンドを実行します(ドメイン名は実際に実行したものとは異なります)。
すると、以下のように表示されます。”Congratulations!”と表示されているので、証明書の取得に成功しているようです。寄付も求められているような気がしますが、気のせいということにしておきます。
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.example.jp/fullchain.pem. Your cert
will expire on 2017-09-17. To obtain a new or tweaked version of
this certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run “certbot
renew”
– If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
ここで ls コマンドで /etc/letsencrypt/liveの下をのぞいてみます。
合計 0
drwxr-xr-x. 2 root root 93 5月 17 07:29 example.org
drwxr-xr-x. 2 root root 93 6月 19 20:57 www.example.jp
ディレクトリが2個になっているのが確認できます。
Apache httpd(v2.4.25)に設定する。
証明書の取得に成功したら、webサーバに対して設定を行います。Apache httpd(v2.4.25)の場合はssl.confを編集することで設定します。2つのドメインの設定はssl.conf内でVirtualHostタグですでに分割されているので、それぞれに対して証明書等の設定を行います。設定例は以下の通りです(証明書等に直接関連しない設定は省略しています)。
Apache httpdの再起動
上記の設定を行った後、Webサーバを忘れずに再起動します。
すると…
スポンサーリンク
今まで赤色のカギが表示されていたところに緑色のカギが表示されました。
ハマりどころ(2017/09/08補足)
Apache httpdのssl.confでDocumentRootの設定に”/var/www/html”以外の文字列を設定しているドメインがある場合には、/etc/letsencrypt/renewalの下にある<当該ドメイン名>.confのwebroot_mapの設定を以下のように変更しないと、証明書の更新に失敗する可能性があります。
(ドメイン名) = (ssl.confのDocumentRootで設定されている文字列)
まとめ
オレオレ証明書を作成していた時にはOpenSSLのコマンドを何回も実行しないと証明書を作成できなかったので、それに比べるとLet’s encryptはあまりセキュリティに詳しくなくても使いやすく、この手のセキュリティのシステムにしてはよく工夫されていると感じました。オレオレ証明書ではなく、正規に証明された証明書を利用できますしね。
この記事は以上です。