413
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

AWS:無料でSSL証明書を取得する方法

概要

先日公開した自分のサービスをhttps接続できるようにしたいと思いました。

SSL証明書は、どこが安くて信頼できるか社内の上司で相談したところ、近くにいたインターン生が「AWSなら無料で発行できますよ。」とナイスなアドバイスをくれました。

さっそく調べて、SSL証明書を取得したのですが、ネット上には断片的な情報しかなく思ったよりも詰まったので、これから取得する方のために、わかりやすく画像で解説します。

前提

今回は、無料でSSL証明書が利用できるAWS Certificate Manager(ACM)を使います。

アジアパシフィック (東京)は、ELB(ロードバランサー)のみにACMを使用することができます。

なので、ELBを利用していないと、無料のSSL証明書を使うことができません。

ちなみに、ELBは有料で、デフォルトで月2000円くらい掛かります。

もし使用される方は以下に設定方法を紹介しています。

初心者向け:AWS(EC2)にRailsのWebアプリをデプロイする方法 ⑤

手順

AWSの設定

サービスをクリックします。

スクリーンショット 2017-06-01 21.33.48.png

Certificate Managerを選択します。

スクリーンショット 2017-06-01 21.34.03.png

「今すぐ始める」をクリックします。

スクリーンショット 2017-06-01 21.34.19.png

ドメイン名を入力します。

スクリーンショット 2017-06-01 21.34.41.png

スクリーンショット 2017-06-01 21.35.19.png

「確認とリクエスト」をクリックします。

スクリーンショット 2017-06-01 21.38.20.png

「確定とリクエスト」をクリックします。

スクリーンショット 2017-06-01 21.39.16.png

以下が表示され、メールが届きます。

※ Whois情報に登録されたメールアドレスに送信されます。

スクリーンショット 2017-06-01 21.40.16.png

メールを確認し、赤丸で囲んだ部分をクリックします。

35a9b599-f008-0336-84d3-da727f32f761.png

「I Approve」をクリックします。

スクリーンショット 2017-06-01 21.50.02.png

赤丸で囲んだ部分をクリックします。

スクリーンショット 2017-06-01 21.50.18.png

以下が表示され、証明書が発行されました。

スクリーンショット 2017-06-01 21.51.31.png

サービスをクリックします。

スクリーンショット 2017-06-01 21.51.31.png

EC2を選択します。

スクリーンショット 2017-06-01 22.06.02.png

ロードバランサーを選択します。

スクリーンショット 2017-06-01 22.08.55.png

リスナーをクリックします。

スクリーンショット 2017-06-01 22.10.02.png

「編集」をクリックします。

スクリーンショット 2017-06-01 22.10.48.png

HTTPをHTTPSに変更します。

スクリーンショット 2017-06-01 22.12.19.png

「変更」をクリックします。

スクリーンショット 2017-06-01 22.13.09.png

赤丸で囲んだ部分をクリックします。

スクリーンショット 2017-06-01 22.13.46.png

スクリーンショット 2017-06-01 22.14.55.png

「保存」をクリックします。

スクリーンショット 2017-06-01 22.16.13.png

「閉じる」をクリックします。

スクリーンショット 2017-06-01 22.17.42.png

サービスをクリックします。

スクリーンショット 2017-06-01 22.28.51.png

Route53を選択します。

スクリーンショット 2017-06-01 22.29.29.png

Hosted zonesをクリックします。

スクリーンショット 2017-06-01 22.30.12.png

対象のドメインをクリックします。

スクリーンショット 2017-06-01 22.30.49.png

「Go to Record Sets」をクリックします。

スクリーンショット 2017-06-01 22.31.58.png

Type: Aのドメインを選択します。

スクリーンショット 2017-06-01 22.33.23.png

AliasをYesに選択します。

スクリーンショット 2017-06-01 22.34.40.png

赤囲みの部分にELBを設定します。

スクリーンショット 2017-06-01 22.41.25.png

作成したELBを設定します。

スクリーンショット 2017-06-01 22.42.23.png

「Save Record Set」をクリックします。

スクリーンショット 2017-06-01 22.43.08.png

サーバとWebアプリの設定

  • ここからはサーバとWebアプリの設定をします。
  • 自分は、RailsとNginxを使っていまして、以下の設定をしています。

/etc/nginx/conf.d/christchurches-map.conf
upstream unicorn_server {
    server unix:/var/www/projects/christchurches-map/tmp/sockets/.unicorn.sock
    fail_timeout=0;
}

server {
    listen 80;
    client_max_body_size 4G;
    server_name www.christchurches-map.com;

    keepalive_timeout 5;

    # Location of our static files
    root /var/www/projects/christchurches-map/public;

    location ~ ^/assets/ {
        root /var/www/projects/christchurches-map/public;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://unicorn_server;
            break;
        }
    }

    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /var/www/projects/christchurches-map/public;
    }
}

Railsアプリに移動します。

$ cd /var/www/projects/christchurches-map/
$ vi config/environments/production.rb
#コメントアウトされていたものを外す
config.force_ssl = true

Unicornの起動を確認します。

$ ps -ef | grep unicorn | grep -v grep
501      29166     1  0 19:31 ?        00:00:01 unicorn_rails master -c /var/www/projects/christchurches-map/config/unicorn.conf.rb -D -E production
501      29169 29166  0 19:31 ?        00:00:00 unicorn_rails worker[0] -c /var/www/projects/christchurches-map/config/unicorn.conf.rb -D -E production
501      29171 29166  0 19:31 ?        00:00:00 unicorn_rails worker[1] -c /var/www/projects/christchurches-map/config/unicorn.conf.rb -D -E production

表示されたUnicornの番号をkillします。

$ kill 番号

$ kill 29166

Nginxを再起動します。

$ sudo service nginx restart

Unicornを再起動します。

$ bundle exec unicorn_rails -c /var/www/projects/christchurches-map/config/unicorn.conf.rb -D -E production

ブラウザから設定したドメインにアクセスします。

https://www.christchurches-map.com/

スクリーンショット 2017-06-01 23.00.26.png

以上で設定完了となります。

Why not register and get more from Qiita?
  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
Sign upLogin
413
Help us understand the problem. What are the problem?