GNU/Linux >> Linux の 問題 >  >> Debian

Debian11のApacheにLet'sEncryptSSLをインストールする方法

Let’s Encryptは、Webサイトに無料のSSL証明書を提供する認証局です。すべてのウェブサイトが安全でHTTPであることを目標に、2014年に開始されました。

SSL証明書を提供するだけでなく、証明書の実装と自動更新にも役立ちます。 Let’s Encryptは、2億5000万を超えるWebサイトで使用されている世界最大の認証局です。

この投稿を書くとき、Let’s Encryptは、Apache、Nginx、Plex、およびHaproxyへの証明書の自動インストールをサポートしています。

ここでは、Debian11のApacheにLet'sEncryptSSL証明書をインストールする方法を説明します。

前提条件

ApacheWebサーバーをインストールする

先に進む前に、システムにApacheWebサーバーをインストールすることをお勧めします。

読む: Debian11にLAMPスタックをインストールする方法

または

aptを使用する ApacheWebサーバーをインストールするコマンド。

sudo apt update

sudo apt install -y apache2

モジュールを有効にする

以下のコマンドを使用して、SSLを有効にし、モジュールを書き換えます。

sudo a2enmod ssl rewrite

仮想ホストの作成

まず、HTTPバージョンのWebサイトを提供するためにApache仮想ホストを作成する必要があります。

sudo nano /etc/apache2/sites-available/www.itzgeek.net.conf

Webサイトには以下の構成を使用してください。要件に基づいて値を変更することを忘れないでください。 wwwサブドメインを使用しない場合は、ServerAliasを削除できます 。

<VirtualHost *:80>

   ServerName itzgeek.net
   ServerAlias www.itzgeek.net
   ServerAdmin [email protected]
   DocumentRoot /var/www/html/www.itzgeek.net


   ErrorLog ${APACHE_LOG_DIR}/www.itzgeek.net_error.log
   CustomLog ${APACHE_LOG_DIR}/www.itzgeek.net_access.log combined


   <Directory /var/www/html/www.itzgeek.net>
      Options FollowSymlinks
      AllowOverride All
      Require all granted
   </Directory>

</VirtualHost>

仮想ホスト構成ファイルを作成したら、サイトを有効にします。

sudo a2ensite www.itzgeek.net

次に、ウェブサイトのファイルを保持するルートディレクトリを作成します。

sudo mkdir -p /var/www/html/www.itzgeek.net/

次に、ディレクトリの所有権とグループを変更します。

sudo chown -R www-data:www-data /var/www/html/www.itzgeek.net/

最後に、テストHTMLファイルをWebサイトのドキュメントルートに配置します。

echo "This is a test site @ www.itzgeek.net" | sudo tee /var/www/html/www.itzgeek.net/index.html

Apacheサービスを再起動して、構成を再読み取りします。

sudo systemctl reload apache2

DNSレコードの作成/更新

Let’s Encrypt SSL証明書を生成するには、ドメインがサーバーIPを指すようにする必要があります。そのため、ドメインレジストラに移動して、ドメインのA/CNAMEレコードを作成します。たとえば、次の画像は、ドメインwww.itzgeek.netのA/CNAMEレコードを示しています。

注:DNSレコードに変更を加えた後、DNSレコードに設定したTTLに応じて、数分から数時間待つ必要があります。

Let'sEncryptのSSL証明書をApacheにインストールする

Certbotのインストール

Certbot ACMEクライアントは、ダウンタイムなしで証明書の発行とインストールを処理します。 Debianオペレーティングシステム用のスナップパッケージとして利用できます。したがって、最初にSnapdパッケージをインストールします。

sudo apt update

sudo apt install -y snapd

次に、スナップを最新バージョンに更新します。

sudo snap install core; sudo snap refresh core

最後に、snapコマンドを使用してCertbotクライアントをインストールし、リンクして、現在の作業ディレクトリに関係なく、どこからでもcertbotコマンドを呼び出すことができるようにします。

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Let'sEncrypt証明書をインストールする

certbotコマンドを使用して、Let’s Encrypt証明書を作成し、証明書を使用するようにApacheを構成します。

sudo certbot --apache

対話型プロンプトに従い、証明書をインストールする必要があります。 itzgeek.netとwww.itzgeek.netの両方の仮想ホストを作成したので、両方のドメインにSSL証明書もインストールする必要があります。次に、書き換えルールを使用してすべてのトラフィックをwww.itzgeek.netにリダイレクトします。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected] << Enter Email ID

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Agree to Terms and Conditions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N << Subscriber to Newsletter
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: itzgeek.net
2: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2 << Select the site to Install Let's Encrypt SSL Certificate
Requesting a certificate for itzgeek.net and www.itzgeek.net

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/itzgeek.net/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/itzgeek.net/privkey.pem
This certificate expires on 2022-01-21.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Successfully deployed certificate for www.itzgeek.net to /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://itzgeek.net and https://www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ドメインに対してHTTPSをアクティブ化すると、Certbotクライアントは、トラフィックをHTTPからHTTPSサイトにリダイレクトするために必要な書き換えルールを配置します。

私の場合、以下のリダイレクトに対して2つのルールが設定されています。

  1. http://itzgeek.net>> https://itzgeek.net
  2. http://www.itzgeek.net>> https://www.itzgeek.net

ご覧のとおり、ドメインのwwwHTTPSバージョンへの最初のリダイレクトには到達していません。そのため、以下のセクションに従って設定する必要がある場合があります。

www以外のHTTPリクエストをApacheを使用してwwwHTTPSにリダイレクトする

www以外のHTTPサイトからWWWWHTTPSサイト( http://itzgeek.net )にトラフィックをリダイレクトするようにApacheWebサーバーを構成することをお勧めします。>> https://www.itzgeek.net

Let’s Encrypt SSL仮想ホストファイル(元の仮想ホストファイルではありません)を編集します。

sudo nano /etc/apache2/sites-available/www.itzgeek.net-le-ssl.conf

</VirtualHost>の前に以下のルールを追加します 。要件に応じてドメイン名を変更します。

    # Redirect NON-WWW HTTP to WWW HTTPS
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =itzgeek.net
    RewriteRule ^ https://www.itzgeek.net%{REQUEST_URI} [END,NE,R=permanent]1,L]

次に、Apacheサービスを再起動します。

sudo systemctl restart apache2

Let'sEncrypt証明書を確認する

Let’s Encryptの証明書は、Webサイトにアクセスして確認できます。

http:// your-http-web-site

または

https:// your-https-web-site

今すぐサイトのHTTPSバージョンを入手する必要があります。

SSL証明書のテスト

以下のURLにアクセスして、Let’sEncryptSSL証明書の問題とそのセキュリティ評価をテストします。

https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net

Let'sEncrypt証明書を更新する

ご存知のように、Let’s Encryptの証明書の有効期間は90日であり、期限内に更新されるようにする必要があります。更新プロセスは現在自動化されており、Certbotクライアントによって提供されるsystemdサービスのおかげです。したがって、手動で更新する必要はありません。

ただし、以下のコマンドを実行してSSL証明書の自動更新をシミュレートすることにより、証明書の更新をテストすることをお勧めします。

sudo certbot renew --dry-run

出力:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/itzgeek.net.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for itzgeek.net and www.itzgeek.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded: 
  /etc/letsencrypt/live/itzgeek.net/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

テストの更新が成功したことを出力で確認すると、期待どおりに自動更新が行われます。

結論

それで全部です。 Debian11のApacheにLet’sEncryptSSL証明書をインストールする方法を学んだことを願っています。


Debian
  1. Debian10にApacheMavenをインストールする方法

  2. Debian11にApacheMavenをインストールする方法

  3. Debian 11 に Let’s Encrypt SSL を Apache でインストールする方法

  1. Debian9にApacheをインストールする方法

  2. Debian9にApacheCassandraをインストールする方法

  3. Debian10にApacheActiveMQをインストールする方法

  1. ApacheでJoomlaをインストールし、Debian10でSSLを暗号化する方法

  2. Debian10にApacheTomcat10をインストールする方法

  3. Debian11にApacheSolrをインストールする方法