3.Let’s Encryptを使用してNginxにSSLの設定をします

先日、Ubuntu MinimalにNGINXをインストールしてページが表示されるようにしました。
本日は無料のSSL証明書を取得してサイトを保護する作業をします。
レッツエンクリプトは、無料のTLS/SSL証明書を取得してインストールし、ウェブサーバーで暗号化されたHTTPSを有効にすることを提供するありがたい認証局(CA)です。

それでは作業をおこなっていきましょう。
最初にCertbotというソフトウェアをインストールします。これが便利で、SSL証明書を取得することはもちろん、更新期限の延長なども自動でやってくれます。次のコマンドを入力します。

sudo apt install certbot python3-certbot-nginx

ドメインの設定をおこなう前にエディタにて内容を確認しておきます。

vi /etc/nginx/sites-available/minokamo.online

2.ubuntu minimalにnginxをインストール
にてNGINXの設定の記事があります。
さらにHTTPSが使用するポートである443を開放しておきます。この詳細も記載してあります。
「/etc/iptables」にあるファイル「rules.v4」に次の項目を追加します。またoracle cloudのセキュリティリストでもポート開放をしておく必要があります。自宅サーバーならルーターでポート設定を済ませておきます。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

次に自分のドメインを含んだコマンドを入力します。

sudo certbot --nginx -d minokamo.online

メールアドレスは正しく入力します。更新期限が切れる前に通知してくれます。


Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
と聞かれたのでここでは1を選択しました。HTTPアクセスを削除してHTTPトラフィックをHTTPSにリダイレクトするかどうかの選択になります。
Future versions of Certbot will automatically configure the webserver so that all requests redirect to secure HTTPS access. You can control this behavior and disable this warning with the –redirect and –no-redirect flags.
と表示されました。Certbotの将来のバージョンでは、すべてのリクエストが安全なHTTPSアクセスにリダイレクトされるように、ウェブサーバーが自動的に構成されるとのことです。

/etc/nginx/sites-availableにあるファイルを再度見るとSSLに関する記載が自動で追加されてました。
managed by Certbotの行がそれにあたります。


タイマーの状態を確認するため下記のコマンドを入力します。レッツエンクリプトの証明書の有効期限が90日間なのでCertbotが期限がせまったら自動で更新してくれる状態の確認です。


certbot.timer – Run certbot twice daily
とあり1日に2回動作するとあります。

sudo systemctl status certbot.timer

ここまで完了したらブラウザで対象ドメインにアクセスしてみます。
鍵マークがURLの前に表示され保護されました。

教育

Posted by admin