Let’s EncryptとCertbotでSSL取得

AsameshiCode

今日の課題 今日は、Let’s EncryptとCertbotを使ってTLS/SSL Certificationを無料で取得します。 今回はウェブサーバーはnginxで行いますが、apacheでも同じことができます。 ちなみに、nginxではデフォルトファイルとは別のサーバーブロックを作成します。ドメイン毎にサーバーブロックをそれぞれ作成することでドメインごとの設定ができます。 準備するもの ・Ubuntuサーバー(20.04) ・root 権限(もしくはsudo権限のユーザー) ・ドメイン(なんとか.com) ・すでにnginxがインストールされていることを前提です。 ・/etc/nginx/sites-available/example.comでアプリがデプロイされていることが前提です。 ・SSHでサーバーに接続できる状態。 ・コマンドラインを使ったことがない人には理解をすることが難しい内容です。 Certbotのインストール では、SSHでサーバーに接続します。私はMobaXtermという無料ツールを2年くらい使っています。詳しいMobaXtermの使い方はこちらの記事を読んでください。 では、Certbotを入れます。 毎回、何を入れているのか公式サイトから確認する癖をつけましょう。 https://certbot.eff.org/ で、下記のコマンドからインストールします。 これでCertBotの準備ができましたが、nginxの方で設定が必要なのでこれからやっていきます。 Nginxの設定 CertBotに自動でSSLを取得するために、正しいサーバーブロックを探すように指示してあげなければいけません。 この記事で説明しているように下記のファイルを先に設定しましょう。 このファイルの中に下記のラインがあることを確認してください。 Nginxのテストをします。 エラーが出た場合はコンフィグを修正してnginxをリロードしましょう。 HTTPSをファイアウォールで許可する Ubuntuサーバーで使われているファイヤーウォールの設定は下記のコマンドで確認できます。 Inactive の場合はsudo ufw enableでアクティブにします。この時にSSHのポートを許可しておきましょう。 では、nginxのポートを許可します。 ここまでできたらCertBotを使ってSSLを取得します。 SSL Certificateを取得 では下記のコマンドでSSLを取得しましょう。 ここで、色々聞かれるので答えていきます。 root@localhost:/etc/nginx/sites-available# sudo certbot –nginx -d ドメイン.com -d www.ドメイン.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: … Read more