対象者
- AWSでデプロイをおこなった方
- https化したい方
目的
- https化してWebサイトのセキュリティをより強固にする
実際の手順と実例
1. httpとhttpsの違い
2つの違いは
通信内容が暗号化されているかどうかです。
httpのままだとSSLが未導入であるということになります。
SSLとは
- インターネット上の通信を暗号化する技術のこと
2.前提
- AWSでデプロイしていること
- nginxがインストールされていること
- EC2でAmazon Linux 2で環境構築していること
Amazon Linuxのもつ特徴7つ|AWSとの関係も解説
3.CertBotを利用してhttps化する
1.EC2のセキュリティにhttpsを追加
- EC2に紐付いているセキュリティグループを選択
- インバウンドルールにhttpsを追加します。
2.nginxのconfファイルを編集
Terminalに以下のコマンドを打ってファイルを開きます。
Terminal.
vi /etc/nginx/conf.d/アプリケーション名.conf
/etc/nginx/conf.d/アプリケーション名.conf
:
:
server {
server_name ドメイン名;
root /home/ec2-user/nginx-puma-deploy/public;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 100M;
include /etc/nginx/mime.types;
location / {
proxy_pass http://puma;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_connect_timeout 30;
proxy_set_header X-FORWARDED_PROTO https; #これを追加
}
:
:
※ viコマンドに関してはこちら
3.Certbotを実装
開発環境のターミナルから
EC2にSSH接続をして
下記のコマンドを順に打ってください
$ cd
$ sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
$ sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
$ sudo yum-config-manager --enable epel*
$ sudo yum install -y certbot python2-certbot-nginx
$ sudo certbot --nginx
最後のコマンド実行後下記5つの質問があります。
(Terminalには英語で表示されます。)
Terminal.
1.緊急時の通知用メールアドレスを入力 し、[Enter]キーを押す
2.利用規約への同意が表示されるので、「Y」と入力 して[Enter]キーを押す
3.Electronic Frontir Foundationへのメール共有を訊かれるので、「N」と入力 して[Enter]キーを押す
4.対象ドメインを確認し、数字をカンマ区切りで入力して[Enter]キーを押す
5.HTTPへのアクセスをHTTPSに自動リダイレクトを訊かれるので、「2」と入力 して[Enter]キーを押す
下記のように表示されれば、https化完了です!
Terminal.
Congratulations! You have successfully enabled https://hoge.com
Certbotとは
- 無料かつ自動でSSL証明書を発行できるツールです。