ユーザ用ツール

サイト用ツール


サイドバー

サーバ:aws:サーバ構築手順:vpc_ec2の構成:ec2にバーチャルホストを設定_ネームベース

文書の過去の版を表示しています。


EC2にバーチャルホストを設定(ネームベース)

EC2 に Elastic IP を割り当てる

【AWS】>【EC2】>【Elastic IP】>【新しいアドレスの割り当て】 【アドレスの関連付け】、EC2のインスタンスを選択する

セキュリティグループにHTTPSを追加

【AWS】>【EC2】>【セキュリティグループ】>【インバウンド】>【HTTPS】がなければ追加

ドメインの取得

今回はテスト用に、Freenomでドメインを取得。

  • aaaa-test.tk
  • bbbb-test.tk

など適当に。 Freenomのドメイン設定画面で、【Use DNS】を選び、EC2に割り当てた【Elastic IP】を入力する。

各ドメインのドキュメントルートを作成

$ sudo mkdir /var/www/aaaa-test.tk
$ sudo chown www:www /var/www/aaaa-test.tk

$ sudo mkdir /var/www/bbbb-test.tk
$ sudo chown www:www /var/www/bbbb-test.tk

適当なindex.htmlファイルをアップしておく。

index.html

<html>
<body>
aaaa-test.tk
</body>
</html>

バーチャルホストの設定

$ sudoedit /etc/httpd/conf.d/vhost.conf
# vhost.conf を貼り付け

vhost.conf

<VirtualHost _default_:80>
  DocumentRoot /var/www/html
</VirtualHost>

##############################
# aaaa-test.tk
##############################
<VirtualHost *:80>
  ServerName aaaa-test.tk
  ServerAlias www.aaaa-test.tk
  DocumentRoot /var/www/aaaa-test.tk
  ServerAdmin 管理者のメールアドレス

  ErrorLog logs/aaaa-test.tk-error_log
  CustomLog logs/aaaa-test.tk-access_log combined

  <Directory "/var/www/aaaa-test.tk">
    Options FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>
 
##############################
# bbbb-test.tk
##############################
<VirtualHost *:80>
  ServerName bbbb-test.tk
  ServerAlias www.bbbb-test.tk
  DocumentRoot /var/www/bbbb-test.tk
  ServerAdmin 管理者のメールアドレス

  ErrorLog logs/bbbb-test.tk-error_log
  CustomLog logs/bbbb-test.tk-access_log combined

  <Directory "/var/www/bbbb-test.tk">
    Options FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>
# 構文チェック
$ apachectl configtest

# 再起動(graceful か restart)
$ sudo apachectl graceful
$ sudo apachectl restart

アクレスできるか確認
http://aaaa-test.tk/
http://bbbb-test.tk/

mod_ssl

https://qiita.com/ariaki/items/174aacfc224d2af5f2ee

# Apacheのバージョン確認
$ httpd -v

# opensslの確認
$ rpm -qa | grep openssl
$ openssl version

# mod_sslの確認
$ rpm -qa | grep mod_ssl

# mod_sslのインストール
$ sudo yum -y install mod_ssl

SSL証明書の取得(Let's Encrypt)

$ sudo yum install epel-release
$ sudo yum install -y certbot python-certbot-apache

# 何も指定しない場合、ドメインを選択肢から選ぶ
$ sudo certbot

# 予めドメインを指定して、実行する場合
$ sudo certbot certonly --webroot -w /var/www/aaaa-test.tk -d aaaa-test.tk

$ sudo ls -la /etc/httpd/conf.d/
$ sudoedit /etc/httpd/conf.d/vhost-le-ssl.conf

$ sudo ls -la /etc/letsencrypt/live/www.aaaa-test.tk/

# CN= の後ろがサーバ名と同じか確認
$ openssl x509 -in /etc/letsencrypt/archive/www.aaaa-test.tk/fullchain1.pem -noout -subject

# バーチャルホストの設定を確認
$ sudoedit /etc/httpd/conf.d/vhost.conf

# ssl用のバーチャルホストを設定
$ sudoedit /etc/httpd/conf.d/vhost-le-ssl.conf

# logファイルに prefix「ssl_」をつける

# wwwのあり・なしの統一(なしの場合の例)
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.aaaa-test.tk
RewriteRule ^ https://aaaa-test.tk%{REQUEST_URI} [END,NE,R=permanent]

# 再起動
$ sudo apachectl restart

各アドレスにアクセスし、想定通りの動きをするか確認。
http://aaaa-test.tk/
http://www.aaaa-test.tk
https://aaaa-test.tk/
https://www.aaaa-test.tk/

証明書自動更新

https://qiita.com/mogya/items/f43334fd531888c4774f

$ sudo systemctl enable --now certbot-renew.timer

# タイマー確認
$ sudo systemctl list-timers

# 証明書更新後に自動でapacheの再起動
$ sudoedit /etc/sysconfig/certbot
POST_HOOK="--post-hook 'apachectl graceful'"

# 再起動
$ sudo apachectl restart

# ログ
$ sudo systemctl status certbot-renew

コメント

コメントを入力. Wiki文法が有効です:
 
サーバ/aws/サーバ構築手順/vpc_ec2の構成/ec2にバーチャルホストを設定_ネームベース.1543550122.txt.gz · 最終更新: 2018/11/30 12:55 by yusuke_komori