目次
概要
S3 + CloudFornt + Route53でホストしているアプリケーションで、「https://www.nururuv-blog.com」のようにURLにサブドメイン「www」を付与してアクセスした時に、 以下のような、エラー画面が表示されたので、その修正方法を記載します。原因
AWSのQ&Aによると、ディストリビューションの代替ドメイン名が正しく構成されていることを確認してください、とのこと。CloudFront が「ERR_SSL_PROTOCOL_ERROR」 および「リクエストを満たすことができませんでした」というエラーを返すには、次の 2 つの理由があります。
CloudFrontディストリビューションの代替ドメイン名が正しくないか、値が空です。
(HTTPSの場合のみ) CloudFront ディストリビューションのセキュリティポリシー は、Web ブラウザーで使用される SSL / TLS プロトコルをサポートしていません。
SSL証明書の設定が、「www.nururuv-blog.com」でのアクセスの場合に対応できてなさそう、、、?
CloudFrontを確認してみると、、、
「代替ドメイン名 (CNAME) – オプション」にサブドメイン込みのURLが記載されていないのが原因のよう。
修正手順
1.SSL証明書を作り直す
AWS Certificate Manager (ACM)を開き、現在使用している証明書を一度削除して、再作成する。この時、完全修飾ドメイン名に、「ドメイン名」のレコードと「*.ドメイン名」のレコードを追加します。
リクエスト後、「Route 53でレコードを作成」でRoute53にレコードを追加し、 ステータスが「発行済み」になることを確認します。
2.CloudFrontで作成したSSL証明書を対応づける
CloudFrontを開き、対象のディストリビューションを選択し、「一般」タブを開き、「設定」欄にある「編集」ボタンをクリックします。「代替ドメイン名(CNAME) – オプション」に「www.ドメイン名」を追加して、「カスタムSSL証明書 – オプション」で先ほど作成した証明書を選択します。
変更を反映します。
これで、再度、WEBブラウザからアクセスすると、エラーなく表示することができました。