nginxとLet’s EncryptでサイトをSSL化する方法とエラーの対処

Google様から今後HTTPサイトを駆逐していくという旨のご達示があったことは皆さんご存知でしょうか?

2017年初頭から Google Chrome ブラウザは、SSLサーバー証明書(以下SSL証明書)を導入していないサイトに対して、アドレスバーによる警告表示を段階的に強化してきました。そして今回2018年7月リリース予定のChrome 68より、SSL証明書を導入していない全てのサイトで「保護されていません」の警告表...

当ブログでは、HTTPSに対応するため無料のSSL化サービス「Let’s Encrypt」を採用したので、その導入方法をまとめました。

環境

  • Ubuntu server 18.04 (自宅サーバー)
  • nginx 1.14.0
  • HTTPS用に443番ポートを開放

インストール

githubからLet’s Encryptをclone

SSL証明書の発行。しかしエラーが!

まずは今動いているnginxを停止させます。

certbot-auto コマンドで証明書を発行します。

'python-virtualenv' というパッケージがないと怒られているのでインストール。

ちなみに $ sudo apt install python3-pip コマンドで以下のエラーが出た場合はこちらを参考に解決できます。

これで準備が整ったので再度証明書を発行します。

証明書などのファイルは /etc/letsencrypt/live/<ドメイン名> ディレクトリに書き出されます。

nginxの設定

これはとっても簡単です。

certbot-auto コマンドの --nginx オプションを使えば勝手に設定ファイルを書き換えてくれます。

nginxを再起動

SSL化完了

ブラウザでサイトを立ち上げて左上に鍵マークで保護された通信と表示されていればSSL化完了です。