Debian 10 に Nginx 用の無料 SSL 証明書をインストールする方法
Web サイトを設定する際に考慮すべき重要な考慮事項の 1 つは、サイトのセキュリティです。 SSL 証明書は、ユーザーのブラウザから Web サーバーに送信されるデータを暗号化するデジタル証明書です。このようにして、送信されるデータは機密であり、Wireshark のようなパケット スニファーを使用して通信を傍受したり盗聴したりするハッカーから安全に保護されます。
次のスクリーンショットに示すように、暗号化されたサイトでは、URL バーに南京錠の記号が表示され、その後に頭字語の https が表示されます。

暗号化されていないサイトには通常、URL バーに「安全ではありません」という通知が表示されます。
前提条件
始める前に、次の要件が満たされていることを確認してください。
- Debian 10 Minimal Server の実行中のインスタンス
- Debian 10 でドメインがセットアップされた Nginx Web サーバーの実行中のインスタンス
- Debian 10< の IP アドレスを指す
A
レコードを持つ登録済みの完全修飾ドメイン名 (FQDN) はドメイン プロバイダにあります。
このチュートリアルでは、linux-console.net
が IP アドレス 192.168.0.104 を指すようにしました。
この記事では、Debian 10 に Let's Encrypt SSL をインストールして Nginx の無料 SSL 証明書を取得する方法を検討します。強力な>ホストされたサイト。
Let's Encrypt SSLとは
Let’s Encrypt SSL は EFF (Electronic Frontier Foundation) が提供する無料の証明書で、有効期間は 3 か月間で、期限が切れると自動更新されます。懐が狭い場合に、サイトを暗号化する簡単かつ安価な方法です。
さっそく、Nginx Web サーバーに Let’s Encrypt をインストールしてみましょう。
ステップ 1: Debian 10 に Certbot をインストールする
まず、Certbot をインストールする必要があります。これは、Let's encrypt デジタル証明書を取得し、後で Web サーバーに展開するソフトウェアです。これを実現するには、python3-certbot-nginx パッケージをインストールする必要があります。ただし、その前に、まずシステム パッケージを更新しましょう。
$ sudo apt update

次のステップは、python3-certbot-nginx パッケージに必要な依存関係をインストールすることです。
$ sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface
次に、python3-certbot-nginx パッケージをインストールしましょう。
$ sudo apt install python3-certbot-nginx

ステップ 2. Nginx サーバーブロック構成の確認
certbot が Nginx Web サーバーに Let’s encrypt SSL 証明書を自動的に展開するには、サーバー ブロックを構成する必要があります。前回の記事の最後のセクションで、Nginx サーバー ブロックの構成について説明しました。
注意深く追跡した場合は、/etc/nginx/sites-available/some_domain にサーバー ブロックがあるはずです。この場合、Nginx サーバー ブロックは次のようになります。
/etc/nginx/sites-available/linux-console.net
さらに、server_name ディレクティブがドメイン名に対応していることを確認してください。
server_name linux-console.net linux-console.net;
すべての Nginx 構成が適切であることを確認するには、次を実行します。
$ sudo nginx -t

上記の出力は、すべてが順調であることを示しています。
ステップ 3: HTTPS ポートを開くようにファイアウォールを構成する
いつも推奨されているように、ufw を設定して有効にしている場合は、Web サーバーに誰もがアクセスできるように、 ファイアウォールを越えてHTTPS プロトコルを許可する必要があります。
$ sudo ufw allow 'Nginx Full'
次に、ファイアウォールをリロードして変更を有効にします。
$ sudo ufw reload

プロトコルがファイアウォールを通過できることを確認するため。
$ sudo ufw status

ステップ 4: ドメインに Let's Encrypt SSL 証明書を展開する
すべての設定と構成を確認したら、Let’s Encrypt SSL 証明書を取得してドメイン サイトに展開します。
$ sudo certbot --nginx -d domain-name -d www.domain-name.com
私たちの場合、次のようになります。
$ sudo certbot --nginx -d linux-console.net -d linux-console.net
最初のステップでは、電子メール アドレスを入力するよう求められます。 住所を入力し、Enter を押します。

次に、利用規約に同意するよう求められます。 「A」と入力して続行します。

Certbot は、EFF の最新の開発に関する通知を送信するために電子メールを使用することに同意を求めます。ここで、オプトインまたはオプトアウトを選択できます。オプトインするには、Y (はい) と入力して Enter を押します。参加を辞退するには、N (いいえ) をクリックします。

次に、Certbot は Let’s encrypt に接続し、SSL 証明書をダウンロードして、作成済みの Nginx サーバー ブロックにデプロイします。

次のセクションで、「2
」と入力して、通常の HTTP トラフィックを HTTPS にリダイレクトします。

証明書は Nginx サーバー に展開され、Web サーバーが Let’s Encrypt SSL を使用して暗号化されたことを確認する通知を受け取ります。

ステップ 5: Nginx Web サイトで HTTPS を確認する
Web ブラウザーで変更を確認するには、ブラウザーのタブを更新し、南京錠のマークを確認してください。

南京錠アイコンをクリックし、[証明書] オプションを選択して、SSL 証明書の詳細を表示します。

すべての証明書の詳細が表示されます。

https://www.ssllabs.com/ssltest/ でサイトの URL をテストすることで、Web サーバーのステータスをさらに確認できます。ウェブサーバーが SSL 証明書を使用して暗号化されている場合、図に示すように A スコアが得られます。

結論
このチュートリアルはこれで終了です。このガイドでは、Debian 10 に Nginx 用の無料 SSL 証明書をインストールする方法を学びました。