HTTPS for AWS ELB(Elastic Load Balancer)
Introduction 本記事はHZ Colloquium Advent Calendar 2014の12/11分の記事です。 前回記事(Welcome to WebAPI World)の続きとなります。 前回までのあらすじ WebAPIを作ってみたくて色々調べてみたよってところまでは話した。が、実装まではたどりつけませんでした。 せっかくのWebAPIだからロードバランサで可用性担保しつつ、SSLなセキュアAPIを実現!という夢を語りました。
本日のお話 「せっかく」のところを実現してみました。ロードバランサとSSL通信のことです。 具体的にはAWSのロードバランササービス「ELB(Elastic Load Balancer)」の設定と クライアントからのHTTPS通信でのアクセスの実現です。結構ウェブ上に情報はあったので それほど苦労もなく実現できてしまいました。 なお、下記サイトに書いてあることとほぼ同じことをやった感じ。 全て網羅されてまとめられていて大変感謝です。 * AWSのELBにSSLを設定する(Nginx)
おしながき PayPalへの登録(おまけ) SSL証明書の購入手続き ELBの設定(SSL証明書の導入) ドメインとELBの紐づけ PayPalへの登録 SSL証明書の購入に必要だった+初体験ってこともあったので登録してみました。 完璧には仕組みがわかってなかったんですけども、簡単に使えてます。 サービス利点としては、各ネット店舗での購入の際に毎回クレジットカード番号を 入れないといけないのを、一度PayPalにクレジット情報を登録しておけば、 PayPalとネット店舗間でお金のやり取りをやってくれるってところ。 初め理解ができなかったのは、上記以外にも「送金」ができるってところ。 日本の中では銀行以外が送金業務できないので実質は初めに行ったサービスだけ 使えるんだけど、法改正とかあるらしくて近く「送金」できるようになるみたい。 まぁネット上の銀行口座にクレジットから振り込みできるってことかな。 ちなみに、登録にはほぼ迷うことなく完了。
SSL証明書の購入手続き メールアドレスの準備 SSL証明書を購入する際は、正しいドメインの所有者か確認するため(?)に ドメイン名のメールアドレスにメールが送られてくる。 admin@codelogue.com とかを用意する(SSL証明書購入時に いくつか選択肢がでてくるので、それを確認してから作成でもよい) なお、独自ドメインで無料メールアドレスを持とうとすると、意外と狭き道だった。 (運よく昔作ったGoogle Appsのアカウントが有効だったため助かった)
CSRの作成 AWSのELBに証明書を登録するためにはパスフレーズなしにする必要がある。
# 秘密鍵の作成(パスフレーズは適当に) openssl genrsa -des3 -out aws-elb.key.pem 2048 # 秘密鍵からパスフレーズを削除 openssl rsa -in aws-elb.