HTTPSは、ハイパーテキスト転送プロトコル(HTTP)の安全なバージョンです。 HTTPSは、SSL / TLSプロトコルを使用して、暗号化と認証を行い、ブラウザとWebサーバー間の通信を保護します。 HTTPリクエストとレスポンスを暗号化して、ブラウザとWebサーバー間で共有されている情報を誰かが盗聴するのを防ぎます。 HTTPSがないと、誰かがログイン資格情報やクレジットカードの詳細など、Webサイトの訪問者の機密情報を盗聴して収集する可能性があります。
このチュートリアルでは、マネージドUbuntuVPSでApache2を使用してHTTPSプロトコルを有効にする方法を示します。デフォルトでは、Ubuntu 20.04サーバーにApacheをインストールすると、サーバーのホスト名用のApache仮想ホストが作成され、非セキュアポート(HTTP / 80)でのみリッスンします。つまり、Webブラウザを使用してサーバーのホスト名に移動すると、Apache2 Ubuntuのデフォルトページが表示され、HTTPS経由でアクセスすると、Apache2がポート443でリッスンしていないため、エラーメッセージがスローされます。 SSL証明書が構成されています。
- Ubuntu20.04とApacheを搭載したサーバー。
- rootユーザーアクセスまたはsudo権限を持つ通常のユーザー。
ステップ1:SSH経由でログインしてパッケージを更新する
SSH経由でUbuntu20.04VPSにログインします:
ssh sshuser@IP_Address -p Port_number
「sshuser」をsudo権限を持つユーザーまたはrootに置き換えます。さらに、「IP_Address」と「Port_Number」をサーバーのそれぞれのIPアドレスとSSHポートに置き換えます。
ログインしたら、次のコマンドを使用して、サーバーに適切なUbuntu20.04バージョンがインストールされているかどうかを確認できます。
$ sudo lsb_release -a
次の出力が得られるはずです:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
次に、次のコマンドを実行して、サーバーにインストールされているすべてのパッケージが最新の利用可能なバージョンに更新されていることを確認します。
$ sudo apt update && sudo apt upgrade
これにより、パッケージ間の互換性が保証されます。
ステップ2:ModSSLを有効にする
開始する前に、Apache SSLモジュールを有効にして、次のコマンドを実行する必要があります:
$ sudo a2enmod ssl
コマンド実行後のメッセージに示されているように、変更をアクティブ化するにはApacheを再起動する必要があります。
$ sudo systemctl restart apache2
ステップ3:自己署名SSL証明書を作成する
自己署名SSL証明書は、Apacheサーバーで物事を試したりテストしたりするときに選択するのに適したオプションです。個人証明書はブラウザにとって何の意味もありません。訪問者がサイトに直接アクセスした場合でも警告メッセージが表示されますが、少なくとも「中間者」攻撃から保護されていることを確認できます。すでに有料のSSL証明書をお持ちの場合は、この手順をスキップして続行できます。
このコマンドを実行して、自己署名SSL証明書を生成します。
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server.yourdomain.com.key -out /etc/ssl/certs/server.yourdomain.com.crt
上記のコマンドを実行するときは、プロンプトに答える必要があります。
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
SSL証明書をインストールするドメイン/サブドメインを必ず入力してください。たとえば、server.yourdomain.com
と入力できます。上記のコマンドは、秘密鍵を/etc/ssl/private/server.yourdomain.com.keyに保存し、証明書ファイルを/etc/ssl/certs/server.yourdomain.com.crt
に保存します。ステップ4:HTTPSを有効にしてSSL証明書をインストールする
このチュートリアルでは、デフォルトの設定ファイルの代わりに、別のApache仮想ホストファイルを使用します。ドメインで動作するApache仮想ホストがすでにあることを前提としています。以下のコマンドを実行して、yourdomain.com.conf構成ファイルをyourdomain.com-ssl.confにコピーできます。コマンドでyourdomain.comを独自の.confファイルに変更して、正しく実行されることを確認してください。
$ sudo cp -a /etc/apache2/sites-available/yourdomain.com{.conf,-ssl.conf}
新しいファイルを編集しましょう。
$ sudo nano /etc/apache2/sites-available/yourdomain.com-ssl.conf
交換
<VirtualHost *:80>
最初の行に
<VirtualHost *:443>
次に、次の3行を追加します。
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/server.yourdomain.com.key
SSLCertificateFile /etc/ssl/certs/server.yourdomain.com.crt
ファイルを保存して終了します。
この後、SSLバージョンのサイトを有効にする必要があります。このコマンドを実行して、サイトを有効にすることができます:
$ sudo a2ensite yourdomain.com-ssl.conf
最後に、次のコマンドを実行して、apache2の構成を確認します。
$ sudo apache2ctl -t
すべて問題がなければ、「構文はOK」というメッセージが表示されたら、Apacheを再起動できます。
$ sudo systemctl restart apache2
有料のSSL証明書を既にお持ちの場合は、 SSLCertificateKeyFileを編集できることに注意してください。 およびSSLCertificateFile ディレクティブを指定して、SSL証明書ファイルとその秘密鍵の正しいパスを指定します。
以下のコマンドを実行して、WebサイトのSSLバージョンが有効になっているかどうかを確認することもできます。
以上です! Apacheを再起動すると、生成された自己署名SSL証明書を使用してSSL接続を許可するように構成されます。 HTTPS経由でWebサイトに移動すると、信頼できる証明書ではないという警告が表示されます。大丈夫。自分で署名したので、これを知っています!続行すると、実際のWebサイトが表示されます。有料のSSL証明書またはLetsencryptが提供するSSL証明書を使用する場合、これは発生しません。
おめでとう!この時点で、Ubuntu20.04のApache2でHTTPSプロトコルを有効にできるはずです。
もちろん、Ubuntu 20.04 VPSがホストされている場合は、Ubuntu20.04でApache2を使用してHTTPSプロトコルを有効にする方法を知る必要はありません。 Ubuntu20.04でApache2を使用してHTTPSプロトコルを有効にするようサポートチームに依頼するだけです。これらは24時間年中無休で利用可能であり、HTTPSプロトコルの構成を支援することができます。
PS。 Ubuntu 20.04でApache2を使用してHTTPSプロトコルを有効にする方法に関するこのブログ投稿を読んで楽しんだ場合は、以下のショートカットを使用してソーシャルネットワークで共有するか、コメントセクションにコメントを残してください。ありがとうございます。