Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
375
Help us understand the problem. What is going on with this article?
@iwaseasahi

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

More than 3 years have passed since last update.

概要

先日公開した自分のサービスを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

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

375
Help us understand the problem. What is going on with this article?
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
iwaseasahi
キリスト教の牧師から、エンジニアに転職しました。全くの未経験で、2016年2月からプログラミングを勉強し始め、同年10月にエンジニアに就職できました。その後、2019年7月よりプロダクトマネージャーを担当しています。紆余曲折ある人生ですが、エンジニアは素晴らしい職業だと感じています。
sight-visit
資格のオンライン予備校「資格スクエア」, 契約管理サービス「NINJA SIGN」を運営するスタートアップ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
375
Help us understand the problem. What is going on with this article?