httpからhttpsへのリダイレクト方法

SSLでの接続にはSSL証明書が必要である。 まずは、Let’s Encryptという証明書認証局内のCertbotというソフトウェアをインストールを行う。 インストール手順は以下を参考にしてほしい。

Amazon Linux 2 に SSL/TLS を設定する

注意:OSによってインストールの仕方が異なるので、自分が使っているOSをよく確認すること  

上記の手順で進めるとドメイン登録の際に

”Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.”

とエラーが出てしまう。 そのために、httpd.confを開いてポート80に仮想ポストを設定する。

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin root@ーーーーー
DocumentRoot /var/www/html
ServerName ーーーーー
</VirtualHost>

『ーーーーー』には自分のドメイン名を入れる。

仮想ホストを設定し、AWSとドメインの紐付けが完了したらhttpd.confは以下のように変更されている。

<VirtualHost *:80>
ServerAdmin root@ーーーーー
DocumentRoot /var/www/html
ServerName ーーーーー
RewriteEngine on
RewriteCond %{SERVER_NAME} =ーーーーー
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

上記の『RewriteEngine』がオンになっていること、『RewriteCond』に自分のドメイン名が記載されていること、『RewriteRule』が記載されていることを確認してほしい。

『RewriteRule』があることによって、”http://~~~”と打っても正しいアドレスの”https://~~~”に繋げてくれるという仕組みである。