ソフトコミュ開発ブログ

SoftCommu は Javaアプリ、Androidアプリの開発を行うディベロッパーです。人材教育もやっています。企業の新人研修の講師からスカイプでのオンライン家庭教師まで!技術書の執筆や翻訳もしています。
<< ズバリ、ラムダ式 (Lambda)とは何か? それを使うと何がうれしいのか? | main | Bitbucketから、指定した時点でのファイルをすべてまとめて zip でダウンロードする方法 >>
2017.01.04 Wednesday
Amazon Elastic Beanstalk で動作している WEBアプリを SSL対応(HTTPS対応)にする

Amazon Elastic Beanstalk で動作している WEBアプリを SSL対応(HTTPS対応)にするまでの長い道のりをメモ。

 

条件1:Elastic Beanstalk の WEBアプリは HTTP通信で稼働中。
条件2:お名前ドットコムで、HTTPS通信で運用するためのドメインを新たに取得。

 

アマゾンは、指定したドメインでの SSL証明書を無料で取得できるようにしています。
これは、AWS Certificate Manager というサービスを使って行います。

 

AWS Certificate Manager で取得した SSL証明書を Elastic Beanstalk にセットすることで、
HTTPSでの安全な通信で WEBアプリが使用できるようになります。

 

今回お名前ドットコムで取得したドメインで HTTPS 運用したかったのですが、

一連の設定で、ちょっと面倒だったのは、SSL証明書を取得するのに、

まずメールアドレスでの認証が必要だということです。


つまり、取得したばかりのドメインでメール認証をする必要があるのですが、
そのドメインは新規に取得したばかりなので、メールサーバーがない。
なので、メールが受信できない。
なので、認証ができない。
・・・ということになってしまいます。

 

この問題を解決するため、今回は、すでに別の用途で使用していた
さくらのメールサーバーを一時的に間借りして、新規ドメインでのメールを受信し、
いったんAWSからのメールを受信して認証を済ませる方法を取りました。

 

大まかな手順としては下記のとおりです。

 

■さくらのサーバーで認証メールを受信するためのセットアップ。

■お名前ドットコムで、さくらのサーバーのDNSを設定。

■Amazon の Certificate Manager で無料の SLL証明書を取得(さくらのサーバーでメールを受信して認証を済ませる)。

■Amazon の Elastic Beanstalk で、上記で取得した SLL証明書を設定。

■Amazon の Route53 で新規ドメイン用の DNSを設定。

■お名前ドットコムに Amazon の Route53 の DNSを設定。

 

細かな手順を下記にまとめます。

 

(1) 新規に取得したドメインでメールを受信するため、一時的にさくらのサーバーにそのドメイン設定。


(2) さくらのサーバーで、admim@mydomain.com というメールアドレスを受信できるようにしておく。


(3) お名前ドットコムの ドメイン Navi で(1)で取得した DNSサーバー(プライマリとセカンダリ)を設定。


(4) 新たに設定した DNSのサーバー情報が世界に浸透するまでにしばらく待つ(数時間かかります) 。

 

ここまでで、認証用メールを受信する準備が整いました。
つぎは、AWSで無料の SSL証明書を申請します。

 

(5) AWSの「Certificate Manager」→ 「証明書のリクエスト」で認証メールを(2)のメールに送る。


(6) 上記の(1)のメールサーバーに届いたメール内にある認証用リンクをクリックする。

 

ここまでで、SSL証明書の取得が完了です。
つぎに、 Elastic Beanstalk に、今回取得したSSL証明書を登録し、WEBアプリでHTTPS通信ができるようにします。

 

(7) AWSの「Elastic Beanstalk」→ 「すべてのアプリケーション」→ 設定したいアプリをクリック → ロードバランシングの右上の歯車をクリックし、下記の設定を行います。

 

■HTTP用のリスナーポートは OFF にします。(これにより、暗号化されていない HTTP による通信をできなくして、HTTPS による通信だけが行われるようになります。)

■安全なリスナーポートを 443 にし、プロトコルを HTTPS 通信にします。(これが今回の目標でしたね。)

■SSL証明書IDの欄には、リストボックスの選択肢の中に上記(5)(6)のステップで取得したIDが入っていると思いますので、それを選んでください。

 

 

上記を設定した後、最後に画面右下の「適用」ボタンをクリックして、HTTP通信の設定完了です。

 

さて、まだ作業が残っています。
それは、今回設定しているドメインを AWSのDNSに設定することです。
現時点では、上記の(1)(2)(3)(4)で設定したとおり、このドメインがさくらのサーバーを指してしまっています。
AWSのドメイン管理は、Route53 というサービスを使って行います。

 

(8) AWSの「Route53」→ 「Hosted zones」→ 「Create Hosted Zone」で下記の画面の設定を行います。

 

画面右側に下記のような設定パネルが出ますので、今回設定したいドメインを「Domain Name」に入力し、下の方にある 「Create」ボタンを押しましょう。

 

 


そうすると、このドメイン用の DNSサーバー情報が一覧表示されます。
「Type」が「NS」の行に、サーバー名が4つほど表示されていますので、それをテキストエディタなどにメモってください。
この一覧表の中では、なぜか各サーバー名の最後にドットがついているのですが、
それはいらない文字ですので、コピペする際には一番最後のドットを取り除いておきましょう。

 

さて、いよいよ最初に戻って、お名前ドットコムで取得したドメインを Amazon Elastic Beanstalk の WEBアプリに設定します。

 

(9) お名前ドットコムの ドメイン Navi で(8)で取得した DNSサーバーを設定。4つのうち2つをプライマリとセカンダリにセットしておけばOKですが、ついでに残りの2つも設定し、合計で4つの DNSサーバーを登録しましょう。

 

(10) 新たに設定したDNSのサーバー情報が世界に浸透するまでにしばらく待つ(数時間かかります) 。

 

長い道のりでしたが、これで Amazon Elastic Beanstalk の WEBアプリで SSL通信が可能になりました!
WEBブラウザから HTTPS:// で始まるアドレスを入力し、安全にサーバーと通信できます。

お疲れさまでした!

 

 

| SoftCommu | AWS (Amazon Web Service) | 12:21 | comments(0) | - |









   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>
+ 人気の記事
1位: ズバリ、ラムダ式 (Lambda)とは何か? それを使うと何がうれしいのか?

2位: Android エミュレータが起動しない場合の復旧手順

3位: Android Studio で "SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable" と表示される問題の原因と対応策

4位: Android 7.0 から Intent の getSerializableExtra() が使えなくなってしまいました!

5位: エミュレータの Google Play Services のバージョンが古いために Google Maps などを使用したアプリが動作しない場合の対応策

6位: Proguard を使用してリリース用APKを出力しようとした際にエラーになるケースの対応策

7位: OneDrive でオフィス文書が同期できなくなるケースの対応策

8位: Java で Firebase を使う方法のまとめ。

9位: Arduino の開発環境に ZIP形式のライブラリをインストールできない場合の対処方法

10位: Bitbucketから、指定した時点でのファイルをすべてまとめて zip でダウンロードする方法

11位: Android Studio で2台のパソコンを行き来しながら開発作業をする方法

12位: AWS (Amazon Web Service) で動作している WEBアプリを SSL対応(HTTPS対応)にする

13位: AWS (Amazon Web Service) の公式ドキュメントで 「HTTPS を終了する」とはどういう意味か?

14位: エクリプスでテキストエディタの背景色を黒っぽくしたらデバッグ中にどの行にいるのかわからなくなった場合の対応策

15位: 任意のレジストラで取得したドメインのSSL認証を AWS で無料で取得し、Elastic Beanstalk の WEBアプリを https で公開するまでの手順まとめ

16位: マイクロソフトの API仕様変更に伴う 「OneDrive API活用術」のサンプルコードの修正のお知らせ

+ ARCHIVES
+ CATEGORIES
+ MOBILE
qrcode
(C) 2016 SoftCommu All Rights Reserved.