1
1

More than 3 years have passed since last update.

AWSにサーバを立てる(HTTPS、独自ドメイン、Apache)

Last updated at Posted at 2020-05-09

目的は、独自ドメインのhttpsサーバをaws上に立てること

  • ドメイン名だけを例えばChromeのアドレスに打って、セキュリティの警告も出ずにサクッと表示されるWebサーバを作る。

無題.png

Route 53 でドメインの取得

  • ダッシュボードから、ドメイン名を購入する。

Certificate Managerで証明書の取得

  • 証明書のリクエストから、指定するドメイン名は、*.domain.exampleだけじゃなくて、別名としてdomain.exampleも追加しておく。
  • メール認証等で、approvalする。

EC2でインスタンスとロードバランサの作成

インスタンス

  • Amazon Linux AMIを選択、適当なタイプを選択して作成する。
  • Elastic IPで静的IPの取得と、インスタンスへの関連付けをする。
  • パブリックDNSは、sshで入るときに使うのでコピーしておく。
  • セキュリティグループのインバウンドルールで、HTTP許可を追加する。

ロードバランサ

  • ロードバランサをClassic Load Balancerで作成し、転送先のインスタンスを作成したインスタンスに指定する。
  • リスナーのhttpsには作成済みの証明書を指定して転送先は80ポート、httpも80に転送しておく。
  • セキュリティグループのインバウンドは、HTTP、HTTPSを許可しておく。
  • ヘルスチェックは、80番ポートのindex.phpとしておく。
  • ロードバランサのDNS名をコピーしておく。

Route 53に戻って、ドメインにエイリアスを設定

  • ドメインのレコードセットの作成で、名前は空、タイプはA(IPv4)、エイリアスはハイ、エイリアス先をロードバランサのDNS名にする。

Apache, PHP, MySQLのインストール

HTTPをHTTPSにリダイレクト

  • /etc/httpd/conf/httpd.conf の最後に以下を追加する。
/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
  • ロードバランサからHTTPで来たものを、X-Forwarded-Protoで判定し、httpsに送るようにクライアントに依頼する。
  • ロードバランサ自体は、何もしていない。

ドメイン名だけをブラウザのアドレス欄に入力して、つながればOK!

その他

  • ロードバランサをClassic Load Balancerではなく、Applicatin Load Balancerにするとhttpからhttpsへの転送設定ができるっぽい。
  • 証明書は、ロードバランサではなくCloudFrontに関連付けることもできる。インスタンスに直接は、できないもよう。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1