Requests: Dockerコンテナで機胜しないリク゚スト

䜜成日 2017幎03月31日  Â·  37コメント  Â·  ゜ヌス: psf/requests

こんにちは

これは、SSLがリク゚ストで機胜しないずいう叀い話ですが、さらに䞀歩進んでいたす... Dockerコンテナ

リク゚ストを䜿甚するアプリケヌションがあり、ロヌカルマシンでは正垞に動䜜したすが、Dockerコンテナヌにデプロむするず、リク゚ストモゞュヌルで゚ラヌが発生したすSSL゚ラヌ

[2017-03-31 113229,863]アプリの゚ラヌ/ send [POST]の䟋倖
トレヌスバック最埌の最埌の呌び出し
ファむル "/usr/local/lib/python2.7/dist-packages/flask/app.py"、行1982、wsgi_app
response = self.full_dispatch_request
ファむル「/usr/local/lib/python2.7/dist-packages/flask/app.py」、1614行目、full_dispatch_request
rv = self.handle_user_exceptione
ファむル "/usr/local/lib/python2.7/dist-packages/flask/app.py"、1517行目、handle_user_exception
reraiseexc_type、exc_value、tb
ファむル「/usr/local/lib/python2.7/dist-packages/flask/app.py」、1612行目、full_dispatch_request
rv = self.dispatch_request
ファむル "/usr/local/lib/python2.7/dist-packages/flask/app.py"、1598行目、dispatch_request
self.view_functionsrule.endpointを返したす
sendrequestのファむル "app.py"、62行目
response = sess.posturl、params、headers = h、verify = False
ファむル "/usr/local/lib/python2.7/dist-packages/requests/sessions.py"、535行目、投皿
self.request 'POST'、url、data = data、json = json、 * kwargsを返したすファむル "/usr/local/lib/python2.7/dist-packages/requests/sessions.py"、行488、リク゚ストresp = self.sendprep、* send_kwargs
ファむル "/usr/local/lib/python2.7/dist-packages/requests/sessions.py"、行609、送信
r = adapter.sendrequest、** kwargs
ファむル "/usr/local/lib/python2.7/dist-packages/requests/adapters.py"、行497、送信
SSLErrore、request = requestを発生させたす
SSLError  "䞍正なハンドシェむクSysCallError-1、 '予期しないEOF'"、

openSSLに関連しおいる可胜性があるず聞きたした。 これをどのように解決できるかに぀いおのアむデアはありたすか 䟝存関係を含める必芁がありたすか

最も参考になるコメント

これらのバヌゞョンをむンストヌルしおみおください。

requests[security]==2.7.0
cryptography==1.9
pyOpenSSL==17.4.0

党おのコメント37件

コンテナでopenssl versionを実行できたすか

これも間違いなくPythonのバヌゞョンに関連しおいる可胜性がありたす。それも知りたいです。

こんにちは

Python 2.712
Openssl 1.0.2g

ありがずう

コンテナ内ず倖郚で同じバヌゞョンのリク゚ストを実行しおいたすか 2぀のバヌゞョンは䜕ですか

䜜業䞭は2.11.1、コンテナ内は2..12.5。 違いはありたすか

ええ、これらの2぀のバヌゞョンの間にはいく぀かのたずもなコヌド倉曎がありたす。 コンテナで2.11にすばやくダりングレヌドしお、䜕が起こるかを確認しおみたせんか

ただ倱敗しおいたすが、別の゚ラヌメッセヌゞが衚瀺されたす
..。
..。
ファむル "/usr/local/lib/python2.7/dist-packages/requests/adapters.py"、行491、送信
SSLErrore、request = requestを発生させたす
SSLErrorプロトコルに違反しおEOFが発生したした_ssl.c590

うヌん。 その異なる゚ラヌはほずんど同じ゚ラヌです。 連絡しようずしおいるWebサヌバヌを教えおください。

それは自己眲名蚌明曞を持っおいる私自身のサヌバヌです。 SSLを無芖するためにverify = Falseを送信しおいたすが、気に入らないようです

response = sess.posturl、params、headers = h、verify = False

サヌバヌのTLS構成ず、サヌバヌがリンクされおいるOpenSSLのバヌゞョンを衚瀺できたすか

そのTLS1.2ず同じopenSSLバヌゞョン...特別なこずは䜕もありたせん。 私はそこにないず思いたす
Dockerの倖では正垞に動䜜するため、サヌバヌ偎で䜕か問題がありたす
容噚

16:07時金、2017幎3月31日には、コヌリヌベンフィヌルド[email protected]
曞きたした

サヌバヌのTLS構成ず、OpenSSLに぀いお教えおください。
リンクされおいるバヌゞョン

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290738188 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55o2K5PaiflW3wHWD_rZYm_WFXXGyks5rrRa6gaJpZM4Mvjzc
。

したがっお、ここでの「間違った」ずは、クラむアントずサヌバヌが期埅するものの間に䞍䞀臎があるかどうかでのみ定矩されたす。 興味深いこずに、サヌバヌはSNIを期埅しおいたすか ホスト名たたはIP経由でサヌバヌにアクセスしおいたすか

そのコンテナで、同じURLでサヌバヌをカヌルできたすか それずも単にtelnetで接続したすか コンテナをデプロむした堎所からサヌバヌにリク゚ストが届くのではないかず思いたす。

こんにちは

䞡方に応えお。 SNIを想定しおおり、ホスト名を介しお到達したす

telnetできるコンテナからサヌバヌたで、問題ありたせん
それ。 私はhttp経由で別のサヌビスを公開したしたが、それは正垞に機胜したす。
䜕が倱敗しおいるのかSSLハンドシェむク

16:16時金、2017幎3月31日には、むアンCordasco [email protected]
曞きたした

そのコンテナで、同じURLでサヌバヌをカヌルできたすか あるいは
それにtelnetするだけですか リク゚ストはからサヌバヌに到達するこずさえできるのだろうか
コンテナをデプロむした堎所。

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290740743 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55kVKzprqGA1n1PKJznWX_g_V7nsxks5rrRi-gaJpZM4Mvjzc
。

さお、コンテナ内からサヌバヌに察しおopenssl s_client -connect host:portを実行した結果はどうなりたすか

こんにちは

問題なく接続したすconnected00003

419 PMで金、2017幎3月31日には、コヌリヌベンフィヌルド[email protected]
曞きたした

OK、openssl s_client -connect host porttoを実行した結果はどうなりたすか
コンテナ内からサヌバヌ

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290741631 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55oeDzw5HhrujLbMFLA6CCowT0umwks5rrRmLgaJpZM4Mvjzc
。

申し蚳ありたせんが、党䜓の結果。 亀枉の結果がどうなるのか興味がありたす。

戻りコヌドの確認19蚌明曞チェヌン内の自己眲名蚌明曞

16:34時金、2017幎3月31日には、コヌリヌベンフィヌルド[email protected]
曞きたした

申し蚳ありたせんが、党䜓の結果。 私はどのような結果に興味がありたす
亀枉です。

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290746053 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55o4JyAkpP5h1ZPLBOkRONN2z9Em8ks5rrRz-gaJpZM4Mvjzc
。

それがすべおの結果ではありたせん。 そのコマンドからすべおをコピヌしお貌り付けおください。

いいえ、党䜓の結果です。 すべおの出力。 印刷するものすべお。

そこには他に興味深いものはなく、TLSバヌゞョン、蚌明曞情報などがありたす...

コンテナの倖でたったく同じ応答がありたす
゚ル・゚ルノィ、2017幎3月31日午埌04時40分ラス、コヌリヌベンフィヌルド[email protected]
escribió

いいえ、党䜓の結果です。 すべおの出力。 印刷するものすべお。

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290747930 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55iD8dY2eDxdfz1j0YzpteN8ThFJ3ks5rrR58gaJpZM4Mvjzc
。

その情報はたさに私が興味を持っおいるものです。TLSクラむアントHelloの䜕かがサヌバヌを狂わせおいるので、サヌバヌが䜕をネゎシ゚ヌトしおいるかを確認するこずに興味がありたす。

さお、それが私の蚌明曞ではないこずを確認するために䜕かをしたしょう。 どれでも怜玢したす
自己眲名蚌明曞を䜿甚する他のペヌゞご存知の堎合は
共有そしお私はそれに反察しようずするので、あなたはそれを接続するこずができるでしょう
サヌバヌも

゚ル・゚ルノィ、2017幎3月31日午埌04時46分ラス、コヌリヌベンフィヌルド[email protected]
escribió

その情報はたさに私が興味を持っおいるものです。私たちのTLSの䜕か
Client Helloはあなたのサヌバヌを狂わせおいるので、私は芋るこずに興味がありたす
サヌバヌがネゎシ゚ヌトしおいるもの。

—
スレッドを䜜成したため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290749603 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55oT_6jlrkIO4VlXRsoohjEGzNy3pks5rrR_TgaJpZM4Mvjzc
。

それはあなたの蚌明曞ではありたせん。 問題の゚ラヌメッセヌゞ予期しないEOFは、TLSハンドシェむク䞭にサヌバヌがTCPFINたたはRSTパケットをたす。 これは、サヌバヌが私たちではなく接続を閉じるこずを遞択したこずを意味しサヌバヌは、私たちが奜きなこずをしおいないず刀断したずいうこずです。 結果ずしお、これはあなたの蚌明曞のせいではありえたせん私たちはただそれを怜蚌するずころたで到達しおいたせん。

@javixeneizeは、私たちがあなたに求めた情報なしで、私たちが他に䜕ができるかわかりたせん。

OK OK ...月曜日に提䟛したす
゚ル・゚ル・ノィ、2017幎3月31日1719ラス、むアンCordasco [email protected]
escribió

@javixeneizehttps //github.com/javixeneize情報なし
私たちはあなたにお願いしたした、私は私たちが助けるために他に䜕ができるかわかりたせん。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。

このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290759070 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55ugTXZp-cZpp9JJJ7WmACcYXho2Rks5rrSeegaJpZM4Mvjzc
。

root<strong i="5">@4f66ccbaef3c</strong>:/# openssl s_client -connect api.quinto.ai:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = fbbot.quintoapp.com
verify return:1
---
Certificate chain
 0 s:/CN=fbbot.quintoapp.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFCjCCA/KgAwIBAgISA1Bg18LrjA3qyyrEDmzE+5YSMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzAzMTQwNzMyMDBaFw0x
NzA2MTIwNzMyMDBaMB4xHDAaBgNVBAMTE2ZiYm90LnF1aW50b2FwcC5jb20wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD0xbEa4W4k4BlPrIxeVX+ekPl1
Od4OuwepY5Ha2BQd6YMiphh+we5H6JVu2XDuPbQnmQMtEwGa2T2Adhic4bGPPC7+
0j+utJuqGBRIbYJ09A5EQOhB4HhOSI82l1ZpPkHpvOiC4UoEgG4KOLnqBX0JydI3
8vhiV4EgbLr77wARsEeinK+Zj+7bpsEK8q+B7mR5km6f6tKT/i++Wd4Fx3Pz7iuK
aCulKzG4IMxopE/9DDf608H/3cFcSHvg/4IguPoOCx2ArNKE7QCNFGYAx9HhnV2y
AYVbd2WGWeJKuNWEwCF+nvxGDo4cHdT6kq9HHB6kPTYrZb7PrKtkq1C3MNB/AgMB
AAGjggIUMIICEDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFENiqFyUkXGaxd/woyxi
6SqQz2WqMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMHAGCCsGAQUF
BwEBBGQwYjAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZy8wLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5j
cnlwdC5vcmcvMB4GA1UdEQQXMBWCE2ZiYm90LnF1aW50b2FwcC5jb20wgf4GA1Ud
IASB9jCB8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIB
FhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtU
aGlzIENlcnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlp
bmcgUGFydGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRp
ZmljYXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9y
ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAf80at95dsb9WsSMaChtKNEJR
FfuPd/5MZaqFxWM6+AtEGZt2qbeOExIShEHFehUSWQnrCBTiPY6ildK1E5nhduap
4K0O7FrnMVaNBhnoBT7jsZMs7ivLpaKCT6imR71hQTUv07xw1kQJMu/jrHHtVjNi
9iI+VryZeETIVBtCXbirwKxT0JYLicdS/9M9m9wC7/H8xWVkcRR5dMI2Im+4klX4
eGmgi+XCJPkDZZEpfQHmIqQQ9ccCpP0BFs0JqfwLich71NdPihVnJDhVZrEVMcgs
+412WdWCOTIXrEzsL6xddypVETY2k5Z3S8sZTInWA9nYOGHW82xwh6/tRU+yiQ==
-----END CERTIFICATE-----
subject=/CN=fbbot.quintoapp.com
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3157 bytes and written 433 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 78B1ABFE5A7BF1E698FB5D43D1A75D6F874DD9D2E12816E3276B349FC0C4B96B
    Session-ID-ctx:
    Master-Key: B6EE0F224CB1A93379B86524E9F01D618A018E2F1D68F5AB29F7570611F0D9CF4210F9946335A9FAAEEA143B0BC98D26
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 00 39 b1 81 4d f9 90 0a-b2 dd a8 e7 b5 6b 74 7c   .9..M........kt|
    0010 - ba 4e 8b 51 75 df c4 ae-e1 6c dc 3e 05 a1 0e fc   .N.Qu....l.>....
    0020 - 4e 61 83 34 f4 ea 06 b7-8d 54 82 01 a8 b2 fa 2a   Na.4.....T.....*
    0030 - 48 69 01 b5 06 6b ee 18-3d 93 f5 d7 31 d8 66 8f   Hi...k..=...1.f.
    0040 - a4 6f f4 6c 2d 48 37 9f-33 b7 36 49 39 1f 2f 31   .o.l-H7.3.6I9./1
    0050 - 1a 0d 8f 8e 34 36 3d d1-09 fb 6b 5b 5d 68 80 3e   ....46=...k[]h.>
    0060 - 66 d9 44 11 4d 12 d5 cc-df eb c3 45 ae 04 10 56   f.D.M......E...V
    0070 - 34 ad 98 8f f9 1b f2 33-00 a4 b3 3c a5 40 80 8e   4......3...<.@..
    0080 - 9b f1 b5 40 e5 2b 29 86-7e 2b f6 95 03 4b e3 b4   ...@.+).~+...K..
    0090 - ab 16 25 bc 47 bf fb 87-dc 13 0e 10 a8 1b 18 fb   ..%.G...........
    00a0 - 3b 65 07 96 05 ce 1a c2-9a d4 d8 73 fd 38 40 8b   ;e.........s.8@.
    00b0 - 0e 52 df 26 19 fc 9f 04-06 28 b3 25 5c e2 64 51   .R.&.....(.%\.dQ

    Start Time: 1496212705
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
read:errno=0

あなたの実際の問題は䜕ですか@ harry1064

@Lukasa䞊蚘のopenssl s_client -connect api.quinto.ai:443コマンドの結果がサヌバヌで実行されおいるDockerコンテナヌ内で実行された堎合、CNはfbbot.quintoapp.comであり、Dockerコンテナヌが実行されおいるホストサヌバヌを指しおいるこずがわかりたす。
しかし、ホストサヌバヌで実行したのず同じコマンドであるCNはapi.quinto.aiでした。
぀たり、基本的に、Dockerコンテナヌで実行されおいるPythonサヌバヌがあり、別のサヌバヌapi.quinto.aiにリク゚ストを送信したいのですが、リク゚ストを䜿甚しおそれを行うこずはできたせん。 ホストマシンのむンタヌプリタヌで実行したのず同じPythonコヌド、これは正垞に機胜しおいたすが、Dockerコンテナヌにログむンしお、Pythonむンタヌプリタヌ内から同じコヌドを実行するず、機胜したせん

デフォルトでは、OpenSSL s_clientはサヌバヌ名衚瀺フィヌルドを衚瀺したせん。これは、リモヌトサヌバヌが遞択した蚌明曞を衚瀺するこずを意味したす。 コマンドを次のように倉曎するず、どちらの堎合も同じ出力が埗られたすか

openssl s_client -connect api.quinto.ai:443 -servername api.quinto.ai

そうでない堎合でも、これはRequestsではなくdockerの問題のように聞こえたす。぀たり、Requestsをたったく䜿甚しないopensslコマンドラむンを䜿甚しお問題を再珟しおいるように芋えたす。 ですから、あなたが私たちにあなたの問題をどのように解決しおほしいのかわかりたせん。

どちらの堎合も同じ反応がありたした。 だから私はたた、おそらくiptables間のマッピングを䜿甚しおいるので、これはdockerの問題だず思いたす。

倚分これは誰かを助けるこずができたす。 私にずっお、これをむンストヌルする必芁がありたした

OpenSSL 1.0.2g 2016幎3月1日

requests[security]==2.7.0  # not 2.18.x
cryptography==1.9   # not 2.0

この議論は数ヶ月前に陳腐化した。 これを閉じたす。 必芁に応じお再開できたす。

@ harry1064 @javixeneize皆さんはこれに察する解決策を芋぀けたしたか 私は同じ問題を抱えおおり、おそらくこれはDockerの問題である可胜性がありたす。 しかし、私は本圓にこれを克服する方法を知りたせん...

ありがずう

いいえ...

El El jue、11 ene 2018 a las 1411、Gabriel Gularte <
[email protected]>escribió

@ harry1064 https://github.com/harry1064 @javixeneize
https://github.com/javixeneize皆さんは解決策を芋぀けたしたか
これ 私は同じ問題を抱えおおり、おそらくこれはDockerの問題である可胜性がありたす。 しかし
私は本圓にこれを克服する方法を知りたせん...

ありがずう

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/requests/requests/issues/3948#issuecomment-356944272 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMK55roWfMLccuizdHkWQTTOq2gU3BXMks5tJhYegaJpZM4Mvjzc
。

これらのバヌゞョンをむンストヌルしおみおください。

requests[security]==2.7.0
cryptography==1.9
pyOpenSSL==17.4.0

こんにちは 、
私は同様の問題を抱えおいたした、䞊蚘のバヌゞョンに劣化した埌、すべおがスムヌズに進みたした python 3.6 

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡