Debian10でApache用の無料SSL証明書を設定する方法


サイバー攻撃や侵害に直面する中で、Webサイトを保護することは、ハッカーから自分自身とサイト訪問者を保護する上で最優先事項です。このチュートリアルでは、Debian 10でLet’s Encrypt SSL forApacheを使用して無料のSSL証明書を設定する方法について説明します。

Let’s Encryptは、Let’s Encrypt機関によって作成された無料のSSL証明書で、有効期間は90日間のみですが、いつでも更新できます。

先に進む前に、SSL証明書とは何ですか? SSL証明書は、ブラウザとWebサーバー間の通信を暗号化するデジタル証明書です。これにより、Webサーバーに送信される情報が非公開で機密であることが保証されます。 SSL証明書は、eコマースWebサイト、銀行Webサイト、PayPal、Payoneer、Skrillなどの送金/送金プラットフォームで一般的に使用されています。

次のスクリーンショットに示すように、SSLで保護されているWebサイトでは、URLバーに南京錠の記号があり、その後に頭字語https(HyperText Transfer Protocol Secure)が続きます。

サイトがSSL証明書で保護されていない場合、GoogleはURLのウェブサイトアドレスの前に「安全ではありません」という警告を表示します。

開始する前に、次の要件が満たされていることを確認してください。

  1. A running instance of Debian 10 Minimal Server.
  2. A running instance of Apache Web Server with Domain Setup on Debian 10.
  3. A registered Fully Qualified Domain Name (FQDN) with the A record pointing to the IP address of the Debian 10 Linux system on your Domain Provider.

このチュートリアルでは、 tecmint.com がIPアドレス192.168.0.104をポイントしています。

ステップ1:Debian10にCertbotをインストールする

まず、Debian10インスタンスにCertbotをインストールする必要があります。 Certbotは、Let’s Encrypt SSLをフェッチしてWebサーバーにセットアップするEFF(Electronic Frontier Foundation)のクライアントソフトウェアです。

これを実現するには、最初にシステムリポジトリを更新します。

$ sudo apt update

次に、以下のコマンドを使用して、Debianシステムにリポジトリを追加します。

$ sudo apt install python-certbot-apache -t buster-backports

ステップ2:ドメインのSSL証明書を取得する

certbotクライアントが正常にインストールされたら、次に進み、以下のコマンドを使用してLet'sEncrypt証明書をインストールします。

$ sudo certbot --apache -d your_domain -d www.your_domain

これにより、以下に示すように、すぐにメールアドレスが要求されます。

次に、利用規約に同意するよう求められます。 A と入力し、Enterキーを押します。

さらに、あなたの電子メールアドレスをEFF財団と共有し、彼らの仕事について定期的に更新を受け取ることをいとわないかどうか尋ねられます。 Y と入力し、Enterキーを押します。

その後、certbotはLet’s Encryptサーバーに連絡し、要求しているドメインが登録済みの有効なドメインであることを確認します。

次に、すべてのリクエストをHTTPSにリダイレクトするかどうかを尋ねられます。 HTTPアクセスを暗号化しようとしているため、リダイレクト用に 2 と入力し、Enterキーを押します。

そして最後に、すべてがうまくいけば、WebサーバーでHTTPSプロトコルを正常に有効にしたという通知とSSL証明書の有効期限が表示されます。

ステップ3:ファイアウォールでHTTPSプロトコルを許可する

セキュリティ上の理由から常に推奨されているように、UFWファイアウォールが有効になっている場合は、HTTPSトラフィックを許可する必要があります。有効にしないと、Webブラウザーでサイトにアクセスできなくなります。

HTTPSはポート443で実行されるため、を実行してポートを開きます。

$ sudo ufw allow 443/tcp

次に、ファイアウォールをリロードして変更を有効にします。

$ sudo ufw reload

変更が有効になっているかどうかを確認するには、以下のコマンドを実行してファイアウォールのステータスを確認します。

$ sudo ufw status

上記の出力からわかるように、ポート443が開かれています。

ステップ4:ウェブサイトでHTTPSを確認する

すべての構成が完了し、ほこりを払ったら、Webサーバーがhttpsプロトコルを使用しているかどうかを確認します。 Webブラウザーに移動し、URLバーにWebサイトのドメイン名を入力してから頭字語httpsを入力します。

少し興味があり、SSL証明書の詳細を確認したい場合は、図のように南京錠の記号をクリックしてください。

プルダウンメニューでは、「証明書」オプションが「有効」と表示されます。

詳細については、そのオプションをクリックしてください。ポップアップが表示され、証明書発行者(Let’s Encrypt Authority)、発行日、有効期限などのすべての詳細が示されます。

https://www.ssllabs.com/ssltest/でサイトのSSL証明書をテストすることもできます。

手順5:CertbotSSL証明書の自動更新を確認する

Certbotは、有効期限の30日前にSSL証明書を自動的に更新します。更新プロセスを確認するには、以下のコマンドを実行します。

$ sudo certbot renew --dry-run

以下の出力は、すべてが正常であり、SSL証明書が90日の有効期限の前に自動更新されることを確認します。

ついにこのチュートリアルは終わりです。このチュートリアルでは、Let’sEncryptの無料SSLを使用してApacheWebサーバーを保護する方法を学習しました。コメントや質問がある場合は、私たちに連絡してください。