SAKURUG TECHBLOG

AWSのEC2上で設定したWebサーバーにSSLを導入する

timestampauthor-name
Runa

はじめに

はじめまして。

2022年よりSAKURUGの新卒エンジニアになりましたRunaです。

新卒研修にてAWSのEC2上で設定したWebサーバにSSLを導入したので、その際に起こったエラーと解決方法についてまとめました。

【エラー1】

・EC2でApacheの導入、起動はできたがデフォルトのUbuntu 20.04 Apache webページが表示されない

【エラー2】

・IPアドレスを打ってもアクセスすることができない

【エラー3】

・SSLの導入を完了し、HTTPでアクセスできるが、HTTPSではアクセスできない

などで困っている人のお役に立てればと思います。

SSL導入までの流れ

①AWSのアカウント作成

②Ubuntuの環境構築

参考:https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04

③Apacheの導入

参考:https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04-ja

④LAMP環境構築

参考:https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04

⑤SSL導入

参考:https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-20-04

SSL導入までに躓いた点が幾つかあったので解決した方法とともにご紹介していきたいと思います。

【エラー1】Apacheをインストールし起動できたもののデフォルトでのUbuntu 20.04 Apache webページにアクセスできない

対処法1:Ubuntuでファイアウォールの22と80を開く

sshで利用する22番のポートとhttpで利用する80番のポートを開放する

-input-

$ sudo ufw status    //ufwの状態確認

-output-

status: active

To      Action    From
--      ------    ----
OpenSSH           ALLOW           Anywhere
Apache            ALLOW          Anywhere
OpenSSH(v6)     ALLOW          Anywhere(v6)
Apache(v6)      ALLOW           Anywhere(v6)

22番と80番が許可されていないのでアクセスすることができないので開放をしていきます。

-input-

$ sudo ufw allow ‘22’    //ufwでポート20番を開放
$ sudo ufw allow ‘80’    //ufwでポート80番を開放

-output-

Status: active

To      Action    From
--      ------    ----
OpenSSH           ALLOW         Anywhere
Apache            ALLOW         Anywhere
22           ALLOW         Anywhere
80           ALLOW         Anywhere
OpenSSH(v6)     ALLOW         Anywhere(v6)
Apache(v6)      ALLOW         Anywhere(v6)
22(v6)         ALLOW         Anywhere(v6)
80(v6)         ALLOW         Anywhere(v6)

これでufw側の設定は完了です。

対処法2:AWSのEC2側のインバウンド設定をする

AWSのEC2側にも独自のファイアウォールがかかってしまっていることでアクセスできませんでした。なので、EC2側も設定をする必要があります。

  1. AWSにログインする
  2. EC2を開く
  3. インスタンスを開いてセキュリティの中のセキュリティグループIDを確認しておく
  4. 画面左側にあるネットワーク&セキュリティからセキュリティグループを選択
  5. 先程確認したセキュリティグループIDを選択
  6. インバウンドのルールを編集
  7. ルールを追加でHTTPを追加

これでAWSのEC2側のファイアウォール設定が完了します。

対処法3:アドレスバーにhttp://から打ち込む

アドレスバーにパブリックIPを打ち込むとHTTPSでのアクセスになります。

アドレスバーにEC2のパブリックIPを打ち込んでもアクセスは可能なのですが、現時点でSSLの設定が完了していないのでページを開くことができません。

なので、http://から打ち込んでアクセスすることでHTTPでのアクセスになります。

この段階を踏んだことでデフォルトのUbuntu 20.04 Apache webページにアクセスできないエラーを解決することが出来ました。

【エラー2】IPアドレスを打ってもアクセスできない

これは、上記の対処法3と同じ方法で解決できました。

アドレスバーはHTTPSで入ってしまうので、アドレスバーに直接http://から打ち込むことで解決です。

【エラー3】SSLの導入を完了し、HTTPでアクセスできるが、HTTPSではアクセスできない

これも【エラー1】と同じようにやっていくことで解決できました。

  1. Ubuntuのファイアウォールで443番を開放する
  2. AWSのEC2側のインバウンド設定でHTTPSの443番をカスタム000.000.000.000/0で追加する

まとめ

アウトプットの研修は初めてでした。

自分自身で解決できたことで理解が深まり、自己成長できたなと思います。

今後も役に立つような記事を書いていきたいと思います。

記事をシェアする

ABOUT ME

author-image
Runa
新卒入社2年目。Sangoportのバックエンド開発をメインにJavaやNestJSのキャッチアップを行っています。