Help us understand the problem. What is going on with this article?

AWS(Cloud9)HTTPS化

目次

  • はじめに
    • 環境
    • 前提
  • Cloud9準備
    • 環境作成
    • 取り敢えず外部公開
    • indexを外部公開
    • indexファイル作成
  • HTTPS化
    • Route53設定
    • ACM証明書発行
    • ALB作成
  • おわりに

はじめに

使用環境

  • AWS Cloud9
  • EC2
    • t2.micro (1 GiB RAM + 1 vCPU)
  • Apache/2.4.39 (Amazon)

前提

  • AWSアカウントを持っていること
  • ドメインを取得可能(又は所持済み)

Cloud9準備

環境作成

1.png
2.png
3.png
4.png
EC2を作成
取り敢えずは最低サイズを選択
OSはAmazon Linux
ネットワークの設定はいじらずに次

5.png
内容を確認大丈夫なら作成

image.png
image.png

取り敢えず外部公開

6.png
下のウィンドウのbashに下記コマンドを打ちインスタンスIDを取得

curl 169.254.169.254/latest/meta-data/instance-id/

表示されたIDはコピーしておきます

7.png
8.png
EC2を開き、インスタンスに移動
検索欄に先ほどコピーしたIDを貼り付ける

表示されたインスタンスをクリック
情報が下ウィンドウに表示されるのでセキュリティグループまでスクロール
セキュリティグループをクリックしてセキュリティグループへ移動

9.png
表示されたグループを右クリックしてインバウンドルールの編集

10.png
HTTPとHTTPSを追加

11.png

Cloud9に戻り下記コマンドを打ってください

curl http://169.254.169.254/latest/meta-data/public-ipv4

IPアドレスを取得できます後程つかいますのでコピーしておいてください

sudo service httpd start

URL欄に先ほどコピーしたIPアドレスを貼り付けて確認してみましょう
12.png
これで接続できていることは確認できます
ですが、indexを表示するためのパスがデフォルトのままでは違うのでそれを直さなければいけません

indexを外部公開

Apacheのパスを直すのですが、ついでにphpのバージョンがデフォルトでは5.6なので7.3にします

#パッケージを更新
sudo yum update -y

#phpバージョン確認
rpm -qa | grep php

#php5.6一式アンインストール
sudo yum remove php56*

#PHP7.3一式インストール
sudo yum install php73*

#リンク削除
sudo unlink /usr/bin/php
#貼り直し
sudo ln -s /etc/alternatives/php7 /usr/bin/php
sudo vi /etc/httpd/conf/httpd.conf

httpd.confを変更
変更する場所を間違えないように注意

httpd.conf
User apache → User ec2-user
Group apache → Group ec2-user

DocumentRoot "/var/www/html" → DocumentRoot "/home/ec2-user/environment"

# Further relax access to the default document root:
<Directory "/var/www/html"> → <Directory "/home/ec2-user/environment"> 
#ec2-userのセッション変数用のファイル書き込み可に設定
sudo chown root:ec2-user /var/lib/php/7.3/session

#設定情報確認用ファイルを配置
echo "<?php phpinfo();" > index.php
#再起動します
sudo service httpd restart

indexファイル作成

index.htmlを作成します
中身は何でもいいですが今回はHello,worldを出力します

index.html
    <h1>Hello,word</h1>

13.png
先ほどのIPアドレスを再度踏めば今回はHello,worldが出力されます

HTTPS化

ここからHTTPS化に入りますがこれにはRoute53でのドメイン取得又は登録が必要になります
取得に関しては今回はやりませんのでそれはまた別途確認して下さい

Route53設定

route.png
14.PNG
15.png
Cloud9でコピーしたIPアドレスを値欄に貼り付けて作成

ACMで証明書発行

acm.png
16.png
17.png
18.png
19.png
20.png
21.png
発行済みになるまで待つ

ALBの作成

7.png
22.png
23.png
24.png
HTTPSを追加

25.png
アベイラビリティーゾーン2つ以上指定

26.png
27.png
HTTPとHTTPSを追加

28.png
成功コードを301に変更

29.png
ポート番号80でCloud9のインスタンスを登録済みに追加して残りは内容の確認をして作成

31.png
作成したロードバランサーのセキュリティグループ欄のグループID(青文字)をコピーします

30.png
インスタンスのセキュリティグループへ移動

32.png
インバウンドルール編集でHTTPを追加ソースには先ほどコピーしたALBのセキュリティグループIDを貼り付けて保存

33.png
Route53で登録したドメインのホストにレコードセットを作成
エイリアスをはいにして、エイリアス先で作成したALBを選択して作成

34.PNG
作成したサブドメインに対して、HTTPSでアクセスして動作を確認

おわりに

HTTPS化には苦労した記憶があるので作成しました

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away