Apacheインストール済みのウェブサーバーにて,SSL証明書を
cerbotによりSSL証明書を取得
$ amazon-linux-extras install epel -y
$ amazon-linux-extras enable epel
$ yum install -y certbot
$ certbot certonly --standalone
対話式に取得できるので多分わかると思います
sslモジュールをインストール
$ yum install -y mod_ssl
※ 「-y」オプションは,インストール時の対話に全てyesする という意味です
ssl.confの編集
SSLモジュールをインストールしたことにより,/etc/httpd/conf.d/ssl.conf が出来ていると思います
ここに書かれている↓のデフォルトの記述を丸っと削除します
後ほどApacheを再起動する際に邪魔になる可能性があるためです
<VirtualHost _default_:443>
〜〜〜〜
</VirtualHost>
バーチャルホストの設定
以下より,「example.co.jp」の部分はご自身のドメインに読み替えてください
/etc/httpd/conf.d ディレクトリに
下記2ファイルを作ります
- vhost-example.co.jp.conf
- vhost-example.co.jp-ssl.conf
上がhttp用,下がhttps用です
vhost-example.co.jp.conf
# IPアドレスでアクセスした場合,リダイレクト
<VirtualHost *:80>
ServerName **.***.**.*** # IPアドレスを入力
Redirect permanent / https://example.co.jp/
</VirtualHost>
# httpsにリダイレクト
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
vhost-example.co.jp-ssl.conf
<VirtualHost *:443>
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.example.co.jp$
RewriteRule ^(.*)$ example.co.jp%{REQUEST_URI} [R=302,L]
ServerName example.co.jp
ServerAlias www.example.co.jp # www付アドレスにアクセスした場合,www無しアドレスにリダイレクトするように設定(事前に名前解決をしておいてください)
ServerAdmin email@example.co.jp # メールアドレスを適宜設定
DocumentRoot /var/www/example.co.jp # DocumentRootを適宜設定
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/example.co.jp/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.co.jp/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.co.jp/chain.pem
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
# https://IPでアクセスした場合,リダイレクト
<VirtualHost *:443>
ServerName **.***.**.*** # IPアドレスを入力
Redirect permanent / https://example.co.jp/
</VirtualHost>
Apacheを再起動
$ systemctl restart httpd
ドメインでアクセスしてみて動作確認