テクノロジー アパッチHTTP 非公開: Apache をインストールし、Let's Encrypt 証明書で安全にする方法

Apache をインストールし、Let's Encrypt 証明書で安全にする方法

Apache HTTP サーバーをインストールし、Let’s Encrypt 証明書で保護する方法を学びましょう。

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

導入

Apache は、最も広く使用されている HTTP Web サーバーの 1 つです。 Apache をセットアップし、SSL 証明書で保護することは、Web アプリケーションに対して実行する必要がある最初のステップです。

このチュートリアルでは、Ubuntu と CentOS 上の Web サイトに Apache をセットアップする方法を学習します。 DigitalOcean VM でこれをテストしました。

デモンストレーション目的のため。 Cloudflare によって強化されたテスト ドメイン名 test.sanakil.xyz を使用します。

test.sanakil.xyz ドメインを実際のドメインに置き換えることを忘れないでください。 📢

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

DNSレコードの作成

Cloudflare またはドメイン レジストラー (Cloudflare でない場合) にログインし、ドメインがクラウド VM の IP を指すように A レコード を作成します。

SSH 経由でクラウド サーバーにログインします。

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Apache(Ubuntu)のインストール

利用可能なパッケージを最新の状態に更新するには

sudo apt-get update

Apacheをインストールする

sudo apt-get install apache2

ファイアウォールで HTTP サーバーのポート 80 と 443 を許可します。

 sudo ufw allow 'Apache Full'

インストールした Apache が正しく実行されていることを確認してください

sudo systemctl status apache2 
Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Apache(CentOS)のインストール

利用可能なパッケージを最新の状態に更新します。

 sudo yum update

Apacheをインストールする

sudo yum install httpd

Web アプリにアクセスするには、ファイアウォールにポート 80 と 443 を追加します。

 sudo firewall-cmd --permanent --add-service=http
 sudo firewall-cmd --permanent --add-service=https
 sudo firewall-cmd --reload

Apacheを起動して実行状況を確認する

sudo systemctl start httpd
 sudo systemctl status httpd
Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Web サイトの VirtualHost を作成する

仮想ホストは、サービスを提供する Web アプリ/Web サイトの種類に応じて 2 つの方法で作成できます。

アプリケーションには、ポート上で実行されている Node のような Web サーバーがすでにあるとします。 プロキシを使用して Apache でサービスを提供 できます。または、アプリが静的サイトのようにファイルを提供しているだけの場合。 Apache で提供するアプリケーションのパス を指定できます。

Apache で仮想ホスト ファイルを作成します。構成ファイルには任意の名前を付けることができます。ただし、Web アプリに提供するドメイン名を保持しておいたほうが、識別しやすくなります。

CentOS の追加セットアップ

CentOS(SELinux)では、Ubuntuのようにデフォルトですべてが有効になっているわけではありません。

Apache で サイト対応 フォルダーと サイト利用可能な フォルダーを作成する必要があります。

sites-enabled – 訪問者に conf ファイルを提供するように Apache に指示します

sites-available – 仮想ホストの conf ファイルを保存します。

 sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

ここで、Sites-enabled フォルダー内の conf ファイルを読み取るように Apache に指示します。

 sudo vi /etc/httpd/conf/httpd.conf

ファイルの最後に以下の行を追加します

IncludeOptional sites-enabled/*.conf

ファイルを提供するように Apache を構成する

  • Web アプリを提供するためのフォルダーを作成する
sudo mkdir -p /var/www/test.sanakil.xyz/webapp
 sudo vi /var/www/test.sanakil.xyz/webapp/index.html
  • テスト用に以下の HTML スニペットを貼り付けます
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache webapp</title>
</head>
<body>
<h1>My Apache webapp is working in test.sanakil.xyz</h1>
</body>
</html>
  • ログを生成して保存するフォルダーを作成する
sudo mkdir -p /var/www/test.sanakil.xyz/log
sudo touch /var/www/test.sanakil.xyz/request.log
sudo touch /var/www/test.sanakil.xyz/log/error.log
仮想ホスト構成
  • confファイルを開く( Ubuntu )
 sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
  • confファイルを開く( CentOS )
 sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf
  • your-domain-name を変更して、以下の conf スニペットを貼り付けます。
 <VirtualHost *:80>
ServerName test.sanakil.xyz
ServerAlias test.sanaki.xyz
DocumentRoot /var/www/test.sanakil.xyz/webapp
ErrorLog /var/www/test.sankil.xyz/log/error.log
CustomLog /var/www/test.sanakil.xyz/log/requests.log combined
</VirtualHost>
  • フォルダーに必要な権限を与えます。
 sudo chown -R $USER:$USER /var/www/test.sanakil.xyz
 sudo chmod -R 755 /var/www/test.sanakil.xyz
Apache(Ubuntu)で仮想ホスト構成ファイルを有効にする
sudo a2ensite test.sanakil.xyz.conf

セキュリティ上の理由からデフォルトの conf ファイルを無効にします

sudo a2dissite 000-default.conf

変更を有効にするには、Apache を再起動します。

 sudo systemctl restart apache2

Apache(CentOS)で仮想ホスト設定ファイルを有効にする

Apacheのシンボリックリンクを作成する

sudo ln -s /etc/httpd/sites-available/test.sanakil.xyz.conf 
/etc/httpd/sites-enabled/test.sanakil.xyz.conf

変更を有効にするには、Apache を再起動します。

 sudo systemctl restart httpd

HTTPS を有効にする

Ubuntu の Apache Web サーバーで HTTPS を有効にすることは、 certbot Let’s Encrypt を使用することで簡単に行えます。

Let’s Encrypt は 、何百万もの Web サイトに SSL 証明書を無料で提供している非営利団体です。

Certbot は、Let’s encrypt を使用して Web サイトに HTTPS を自動的に設定するソフトウェアです。

Apache(Ubuntu)用のcertbotを追加してインストールする

sudo add-apt-repository ppa:certbot/certbot
 sudo apt install python-certbot-apache

Apache(CentOS)用のcertbotを追加してインストールする

sudo yum install epel-release
 sudo yum install certbot python2-certbot-apache mod_ssl

SSL証明書を取得する

sudo certbot --apache -d your-domain-name

すべての検証が certbot によって問題なく行われた場合。

HTTPS リダイレクトを要求します。オプション 2 を選択して入力します。

それでおしまい。

すべてが正しく動作すると、https://test.sanakil.xyz に、作成した基本的な HTML インデックス ページが表示されます。

結論

この記事で、Apache に SSL 証明書をインストールして実装する方法について理解していただければ幸いです。

次に、Nginx で証明書を実装する方法を確認します。

「 Apache をインストールし、Let’s Encrypt 証明書で安全にする方法」についてわかりやすく解説!絶対に観るべきベスト2動画

[SSL_CSR生成] Apache 2.x + mod_ssl + OpenSSL(新規・更新)/GMOグローバルサイン
Let’s Encrypt を使用して Apache2 に SSL を無料でインストールする

Apache HTTP サーバーをインストールし、Let’s Encrypt 証明書で保護する方法を学びましょう。

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

導入

Apache は、最も広く使用されている HTTP Web サーバーの 1 つです。 Apache をセットアップし、SSL 証明書で保護することは、Web アプリケーションに対して実行する必要がある最初のステップです。

このチュートリアルでは、Ubuntu と CentOS 上の Web サイトに Apache をセットアップする方法を学習します。 DigitalOcean VM でこれをテストしました。

デモンストレーション目的のため。 Cloudflare によって強化されたテスト ドメイン名 test.sanakil.xyz を使用します。

test.sanakil.xyz ドメインを実際のドメインに置き換えることを忘れないでください。 📢

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

DNSレコードの作成

Cloudflare またはドメイン レジストラー (Cloudflare でない場合) にログインし、ドメインがクラウド VM の IP を指すように A レコード を作成します。

SSH 経由でクラウド サーバーにログインします。

Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Apache(Ubuntu)のインストール

利用可能なパッケージを最新の状態に更新するには

sudo apt-get update

Apacheをインストールする

sudo apt-get install apache2

ファイアウォールで HTTP サーバーのポート 80 と 443 を許可します。

 sudo ufw allow 'Apache Full'

インストールした Apache が正しく実行されていることを確認してください

sudo systemctl status apache2 
Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Apache(CentOS)のインストール

利用可能なパッケージを最新の状態に更新します。

 sudo yum update

Apacheをインストールする

sudo yum install httpd

Web アプリにアクセスするには、ファイアウォールにポート 80 と 443 を追加します。

 sudo firewall-cmd --permanent --add-service=http
 sudo firewall-cmd --permanent --add-service=https
 sudo firewall-cmd --reload

Apacheを起動して実行状況を確認する

sudo systemctl start httpd
 sudo systemctl status httpd
Apache をインストールし、Let's Encrypt 証明書で安全にする方法
Apache をインストールし、Let’s Encrypt 証明書で安全にする方法

Web サイトの VirtualHost を作成する

仮想ホストは、サービスを提供する Web アプリ/Web サイトの種類に応じて 2 つの方法で作成できます。

アプリケーションには、ポート上で実行されている Node のような Web サーバーがすでにあるとします。 プロキシを使用して Apache でサービスを提供 できます。または、アプリが静的サイトのようにファイルを提供しているだけの場合。 Apache で提供するアプリケーションのパス を指定できます。

Apache で仮想ホスト ファイルを作成します。構成ファイルには任意の名前を付けることができます。ただし、Web アプリに提供するドメイン名を保持しておいたほうが、識別しやすくなります。

CentOS の追加セットアップ

CentOS(SELinux)では、Ubuntuのようにデフォルトですべてが有効になっているわけではありません。

Apache で サイト対応 フォルダーと サイト利用可能な フォルダーを作成する必要があります。

sites-enabled – 訪問者に conf ファイルを提供するように Apache に指示します

sites-available – 仮想ホストの conf ファイルを保存します。

 sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

ここで、Sites-enabled フォルダー内の conf ファイルを読み取るように Apache に指示します。

 sudo vi /etc/httpd/conf/httpd.conf

ファイルの最後に以下の行を追加します

IncludeOptional sites-enabled/*.conf

ファイルを提供するように Apache を構成する

  • Web アプリを提供するためのフォルダーを作成する
sudo mkdir -p /var/www/test.sanakil.xyz/webapp
 sudo vi /var/www/test.sanakil.xyz/webapp/index.html
  • テスト用に以下の HTML スニペットを貼り付けます
<!DOCTYPE html>
<html lang="en">
<head>
<title>Apache webapp</title>
</head>
<body>
<h1>My Apache webapp is working in test.sanakil.xyz</h1>
</body>
</html>
  • ログを生成して保存するフォルダーを作成する
sudo mkdir -p /var/www/test.sanakil.xyz/log
sudo touch /var/www/test.sanakil.xyz/request.log
sudo touch /var/www/test.sanakil.xyz/log/error.log
仮想ホスト構成
  • confファイルを開く( Ubuntu )
 sudo vi /etc/apache2/sites-available/test.sanakil.xyz.conf
  • confファイルを開く( CentOS )
 sudo vi /etc/httpd/sites-available/test.sankil.xyz.conf
  • your-domain-name を変更して、以下の conf スニペットを貼り付けます。
 <VirtualHost *:80>
ServerName test.sanakil.xyz
ServerAlias test.sanaki.xyz
DocumentRoot /var/www/test.sanakil.xyz/webapp
ErrorLog /var/www/test.sankil.xyz/log/error.log
CustomLog /var/www/test.sanakil.xyz/log/requests.log combined
</VirtualHost>
  • フォルダーに必要な権限を与えます。
 sudo chown -R $USER:$USER /var/www/test.sanakil.xyz
 sudo chmod -R 755 /var/www/test.sanakil.xyz
Apache(Ubuntu)で仮想ホスト構成ファイルを有効にする
sudo a2ensite test.sanakil.xyz.conf

セキュリティ上の理由からデフォルトの conf ファイルを無効にします

sudo a2dissite 000-default.conf

変更を有効にするには、Apache を再起動します。

 sudo systemctl restart apache2

Apache(CentOS)で仮想ホスト設定ファイルを有効にする

Apacheのシンボリックリンクを作成する

sudo ln -s /etc/httpd/sites-available/test.sanakil.xyz.conf 
/etc/httpd/sites-enabled/test.sanakil.xyz.conf

変更を有効にするには、Apache を再起動します。

 sudo systemctl restart httpd

HTTPS を有効にする

Ubuntu の Apache Web サーバーで HTTPS を有効にすることは、 certbot Let’s Encrypt を使用することで簡単に行えます。

Let’s Encrypt は 、何百万もの Web サイトに SSL 証明書を無料で提供している非営利団体です。

Certbot は、Let’s encrypt を使用して Web サイトに HTTPS を自動的に設定するソフトウェアです。

Apache(Ubuntu)用のcertbotを追加してインストールする

sudo add-apt-repository ppa:certbot/certbot
 sudo apt install python-certbot-apache

Apache(CentOS)用のcertbotを追加してインストールする

sudo yum install epel-release
 sudo yum install certbot python2-certbot-apache mod_ssl

SSL証明書を取得する

sudo certbot --apache -d your-domain-name

すべての検証が certbot によって問題なく行われた場合。

HTTPS リダイレクトを要求します。オプション 2 を選択して入力します。

それでおしまい。

すべてが正しく動作すると、https://test.sanakil.xyz に、作成した基本的な HTML インデックス ページが表示されます。

結論

この記事で、Apache に SSL 証明書をインストールして実装する方法について理解していただければ幸いです。

次に、Nginx で証明書を実装する方法を確認します。

「 Apache をインストールし、Let’s Encrypt 証明書で安全にする方法」についてわかりやすく解説!絶対に観るべきベスト2動画

[SSL_CSR生成] Apache 2.x + mod_ssl + OpenSSL(新規・更新)/GMOグローバルサイン
Let’s Encrypt を使用して Apache2 に SSL を無料でインストールする