web-dev-qa-db-ja.com

CloudFrontはオリジンに接続できませんでした

Http上でCloudfrontを正しくセットアップしました。それは私のウェブサイト(dev.pie.video)からうまくデータをフェッチしました。 httpsに移動しています。 https://dev.pie.videoでは問題なく動作していますが、Cloudfrontはコンテンツをサーバーできません。たとえば https://dev.pie.video/favicon-96x96.png は機能しますが、 https://d1mbpc40mdbs3p.cloudfront.net/favicon-96x96.png は失敗しますCloudfrontディストリビューションd1mbpc40mdbs3pdev.pie.videoを指しているにもかかわらず、ステータス502。

それが役立つ場合の詳細:

  • d1mbpc40mdbs3p.cloudfront.netは、httpsにデフォルトのCloudFront証明書を使用します
  • クラウドフロントディストリビューションのオリジンは、SSLとTLSを介して動作し、ビューアのプロトコルを使用するように設定されています。

=====編集1 =====

クラウドフロント設定のスクリーンショット:

一般: enter image description here

原点:

enter image description here

行動:

enter image description hereenter image description here

====編集2 ====

それが役に立ったら、クラウドフロントから取得したログは次のようになります

<timestamp> SFO20   924 96.90.217.130   GET d1mbpc40mdbs3p.cloudfront.net   /favicon-96x96.png  502 -   <someInfoOnTheClientBrowser>    2   -   Error   poZyhl63JNGFk8dIIjCluGDm4dxF8EdMZFhjg82NgHGPNqcmx6ArHA==    d1mbpc40mdbs3p.cloudfront.net   https   494 0.002   -   TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Error   HTTP/1.1
8
Guig

OriginサーバーがSSL用に正しく構成されていません。 CloudFrontには有効な設定が必要であり、一部のブラウザよりも厳しい場合があります。したがって、ブラウザの緑色のロックは、SSL設定が完全​​であり、すべてのクライアントと普遍的に互換性があることを必ずしも意味しません。

$ true | openssl s_client -connect dev.pie.video:443 -showcerts
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/OU=Domain Control Validated/CN=dev.pie.video
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
-----BEGIN CERTIFICATE-----
MIIFMzCCBBugAwIBAgIJAL96wtFpu1ZpMA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
VQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEa
MBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xLTArBgNVBAsTJGh0dHA6Ly9jZXJ0
cy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzEzMDEGA1UEAxMqR28gRGFkZHkgU2Vj
dXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTE2MDgwODE4MzQ0MFoX
DTE3MDgwODE4MzQ0MFowOzEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRh
dGVkMRYwFAYDVQQDEw1kZXYucGllLnZpZGVvMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAz/wT5j/zHKzmt3oRvst74Knqxc0pl3sp5imUJ7UegoxcTISm
xJC5qQiDsD0U08kAFxvXDd91jlozh4QDcfLE8N7X9fsxC7OW2pDv3ks/LO7tiCxn
gNmxjvYvOQ/vASrLHIal+oGWJNdBMB1eckV4xHCeBDDEizDneq/qvjN0M0k5hQ+/
qk7RjVhJUmFAfvhXpxXaCbVDq1d3V1iRBo3oP3SGV++bj/m55QPFfKCZqGPTiM5G
c9+8ru16EVCpvs0wCWBVxjTiOCGtrMLgvp9LOs8AN369Yk/3AynpgAI0DDhb5y8I
KEuCdbUaIg5Zo029iZz4nWRsZFd5CSwgX8tZNQIDAQABo4IBvjCCAbowDAYDVR0T
AQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH/
BAQDAgWgMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuZ29kYWRkeS5jb20v
Z2RpZzJzMS0yODIuY3JsMF0GA1UdIARWMFQwSAYLYIZIAYb9bQEHFwEwOTA3Bggr
BgEFBQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0
b3J5LzAIBgZngQwBAgEwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRw
Oi8vb2NzcC5nb2RhZGR5LmNvbS8wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZp
Y2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgw
FoAUQMK9J47MNIMwojPX+2yz8LQsgM4wKwYDVR0RBCQwIoINZGV2LnBpZS52aWRl
b4IRd3d3LmRldi5waWUudmlkZW8wHQYDVR0OBBYEFEPW+uDOOtZfUEdXuBs+960C
zQRKMA0GCSqGSIb3DQEBCwUAA4IBAQBLkLYJEc9E+IGv6pXaPCcYowJfji651Ju6
3DNzGXdyWfOXG+UVCMtPZuC9J66dID4Rc7HWzLveTPEI32z4IgtSjvRwRk9YyWVx
uCOpsP3e/Vgriwg5ds4NyrelQfshA3KaiTLohuiVEOBZgZgIwBEmwR2ZNFuL375E
uEn909zF9+sGkTbFnMm1zlqB2oh2UlSkUT3mj009vWF416W6kZQdFFFEmaI8uSmo
+Thd8HSxQytzWvB3dR4lCteiC09lkQPHU5t10tPgK9BtkLv05ICQQoDhFJmLeAcC
WNEmCcDnSHPxXjPi8kcyM6aqNofL1D0e1pYYvcpYQQDayWdY3tUh
-----END CERTIFICATE-----
---
Server certificate
subject=/OU=Domain Control Validated/CN=dev.pie.video
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
---
No client certificate CA names sent
---
SSL handshake has read 2010 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
...clipped...

証明書は、中間証明書(ルートではない)である「GoDaddy Secure Certificate Authority-G2」によって署名されており、サーバーにその中間証明書がインストールされていないため、CloudFrontはそれが「不可能」であると報告します。 SSL証明書の有効性を検証できないため、セキュリティ上の予防措置として、実際には接続することがより正確に「望まない」場合に接続します。これらは、WebサーバーのログにSSLネゴシエーションの失敗として表示されます。接続自体は機能していますが、CloudFrontは接続が無効であると見なしているため、信頼の問題のために安全に使用できません。

注意

Originサーバーが期限切れの証明書、無効な証明書、または自己署名証明書を返す場合、またはOriginサーバーが証明書チェーンを間違った順序で返す場合、CloudFrontはTCP接続をドロップし、HTTPを返しますエラーコード502、およびX-CacheヘッダーをError from cloudfrontに設定します。

http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html

サーバー構成に中間証明書を追加すると、設定が完了します。これは、ダウンロード時に証明書にバンドルされているはずですが、バンドルされていない場合は、CA、この場合はGoDaddyから取得できます。

これは、GoDaddy証明書に固有の制限ではありません。標準的な方法に従うすべてのCAは、中間証明書を使用して、信頼されたルートに戻る信頼のチェーンを確立します。

参照:

https://www.godaddy.com/help/what-is-an-intermediate-certificate-868

https://certs.godaddy.com/repository

7

CloudFront(別の会社)の上にCloudFlare(Amazon)を使用すると、この問題が発生しました。彼らは確かに彼らのhttps証明書を正しく持っていますか?

一番下まで行かなかったので、Originをhttpに戻しました。それは愚かなebayストアの単なる画像であり、私は実際にはCloudFrontを使用して下のドメインを難読化しただけでした(人々がebayで画像のURLを盗むため)。

クエリ文字列パラメータを追加しました?a=1そしてそれはうまくいった、?a=2失敗、?a=3働いた、?a=4働いて?a=8再び失敗しました。そのため、CloudFrontのいずれかで何かファンキーなことが起こっていました

何が起こっているのかはまだわかりませんが、無効化しても修正されませんでした。クエリ文字列を通過し、aを変更しても常に機能するとは限らなかったため、予想もしていませんでした。

問題が発生した場合は、意味のないパラメーターを追加して数回インクリメントし、結果を観察してみてください。

0
Simon_Weaver