ATS対応の一環でCloutFrontをSSLv3に対応させる作業があったためメモ。
結局あまりに駆け込みが多かったのか、「やっぱ延期で、いつまで延期するかは未定」ってオチになりましたが。
念のため大前提として書いておくのですが、
これは一旦やり過ごすだけの対応であり、将来的にはちゃんとアプリ側でSSLv3を使わずに済むよう対応する必要があります。
必要なもの
- 正規のSSL証明書(自己署名証明書、通称オレオレ証明書だとNG)
- 月あたり600USD
- 証明書をアップロードしたいAWSアカウントに対してawsコマンドが叩ける環境
証明書のアップロード
aws iam upload-server-certificate --server-certificate-name [識別名] --certificate-body [証明書ファイル] --private-key [秘密鍵ファイル] --certificate-chain [中間証明書ファイル] --path /cloudfront/
識別名:AWSのコンソールから見える証明書の名前
証明書ファイル:証明書のパス
秘密鍵ファイル:秘密鍵のパス、パスワード付きはNG
中間証明書ファイル:中間証明書のパス
※各ファイルのパスは先頭に「file://」を付け、コマンドを実行したディレクトリから見たパスで記述すること
証明書の適用
ちなみに、ここで正規の証明書ではなく自己署名証明書を上げていた場合、CloudFrontでこんなエラーが出て設定を変更することができません。
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The specified SSL certificate doesn't exist, isn't valid, or doesn't include a valid certificate chain. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
要約すると「無効な証明書だから使わせねーよ」ってトコでしょうか。
そりゃそうです。