自己証明書を作成してAWSのELBに設定する
このページを参考にする前に
自分でドメインを取得している方は、ACSで無料で証明書を作れるらしいので、そちらを使ったほうがいいです dev.classmethod.jp
それ以外の方は、 ELBはもう作成済みとする
自己証明書を作成
# 作業用ディレクトリに入る $ mkdir keyfuck $ cd keyfuck # 鍵を作成する $ openssl genrsa -out ./server.key 2048 # CSRを作成する # いろいろ質問されるので適時回答する。Common NameにはELBのDNS nameを指定する $ openssl req -new -key ./server.key -out ./server.csr ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Nakano Organization Name (eg, company) [Internet Widgits Pty Ltd]:fuckyou Organizational Unit Name (eg, section) []:fuckyou Common Name (e.g. server FQDN or YOUR name) []:eleb-xxxx.ap-northeast-1.elb.amazonaws.com [ Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: # CSRを秘密鍵で署名してCRTを作成する $ openssl x509 -in server.csr -days 365 -req -signkey server.key -out server.crt
ちなみに上記の方法でやった場合は自己証明書になるので、アクセス時に警告が発生します。 それが嫌な場合はLet’s Encryptなどを使用してください。
無料SSL/TLS証明書のLet’s Encryptが正式版になったので自動更新を含めて試してみた | Webセキュリティの小部屋
AWSに証明書をアップロードする
本当はAWSのコンソール画面から出来るはずなんだけど、なんかエラーでる
参考 http://cyborg-ninja.com/ittips/3336
# elb-server-certの部分は任意 aws iam upload-server-certificate --server-certificate-name elb-server-cert --certificate-body server.crt --private-key server.key
$ brew install awscli $ aws configure # それなりの権限があるIAMのAccess Key IdとSecret Access Keyを設定する。
ELBに証明書を設定する
- AWSコンソール
- EC2
- Load Balancers
- 該当のELB
- Listeners
- HTTPSの行を用意
- SSL Certificate change
- 「Choose an existing certificate from AWS Identity and Access Management (IAM)」
- Save
でOK。