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
์‘๋‹ต = self.full_dispatch_request()
full_dispatch_request์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/flask/app.py", 1614ํ–‰
rv = self.handle_user_exception(e)
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/flask/app.py", 1517ํ–‰, handle_user_exception
์žฌ์ƒ์Šน(exc_type, exc_value, tb)
full_dispatch_request์˜ ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/flask/app.py", 1612ํ–‰
rv = self.dispatch_request()
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/flask/app.py", 1598ํ–‰, dispatch_request
self.view_functions rule.endpoint ๋ฐ˜ํ™˜
sendrequest์˜ ํŒŒ์ผ "app.py", 62ํ–‰
์‘๋‹ต=sess.post(url,params, headers=h,verify=False)
๊ฒŒ์‹œ๋ฌผ์˜ "/usr/local/lib/python2.7/dist-packages/requests/sessions.py" ํŒŒ์ผ, 535ํ–‰
return self.request('POST', url, data=data, json=json, *kwargs)ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", 488ํ–‰, ์š”์ฒญresp = self.send(์ค€๋น„, * send_kwargs)
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", 609ํ–‰, ๋ณด๋‚ด๊ธฐ
r = adapter.send(์š”์ฒญ, **kwargs)
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", 497ํ–‰, ๋ณด๋‚ด๊ธฐ
SSLError(e, ์š”์ฒญ=์š”์ฒญ) ๋ฐœ์ƒ
SSLError: ("์ž˜๋ชป๋œ ํ•ธ๋“œ์…ฐ์ดํฌ: SysCallError(-1, '์˜ˆ๊ธฐ์น˜ ์•Š์€ EOF')",)

openSSL๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ข…์†์„ฑ์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค์Œ ๋ฒ„์ „์„ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

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

๋ชจ๋“  37 ๋Œ“๊ธ€

์ปจํ…Œ์ด๋„ˆ์—์„œ openssl version ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋˜ํ•œ Python ๋ฒ„์ „๊ณผ ๋งค์šฐ ํ™•์‹คํžˆ ๊ด€๋ จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ๋„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•

ํŒŒ์ด์ฌ 2.7 (12)
์˜คํ”ˆ์Šฌ1.0.2g

๊ฐ์‚ฌ ํ•ด์š”

์ปจํ…Œ์ด๋„ˆ์™€ ์™ธ๋ถ€์—์„œ ๋™์ผํ•œ ๋ฒ„์ „์˜ ์š”์ฒญ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์ด ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

2.11.1 ์ž‘์—… ์ค‘, 2..12.5 ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€. ์ฐจ์ด๊ฐ€ ์žˆ๋‚˜์š”?

๋„ค, ๋‘ ๋ฒ„์ „ ์‚ฌ์ด์— ๊ดœ์ฐฎ์€ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์—์„œ 2.11๋กœ ๋น ๋ฅด๊ฒŒ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ์‹ญ๋‹ˆ๊นŒ?

์—ฌ์ „ํžˆ ์‹คํŒจํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜
...
...
ํŒŒ์ผ "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", 491ํ–‰, ๋ณด๋‚ด๊ธฐ
SSLError(e, ์š”์ฒญ=์š”์ฒญ) ๋ฐœ์ƒ
SSLError: ํ”„๋กœํ† ์ฝœ ์œ„๋ฐ˜์œผ๋กœ EOF๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(_ssl.c:590).

ํ . ๊ทธ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๋Š” ๊ฑฐ์˜ ๋™์ผํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ ‘์†ํ•˜๋ ค๋Š” ์›น ์„œ๋ฒ„๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ž์ฒด ์„œ๋ช… ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ๋‚ด ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. SSL์„ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด verify=False๋ฅผ ๋ณด๋‚ด๊ณ  ์žˆ์ง€๋งŒ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‘๋‹ต=sess.post(url,params, headers=h,verify=False)

์„œ๋ฒ„์˜ TLS ๊ตฌ์„ฑ๊ณผ ์—ฐ๊ฒฐ๋œ OpenSSL ๋ฒ„์ „์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

TLS 1.2 ๋ฐ ๋™์ผํ•œ openSSL ๋ฒ„์ „... ํŠน๋ณ„ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฑฐ๊ธฐ์— ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค
๋„์ปค ์™ธ๋ถ€์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„ ์ธก์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ

2017๋…„ 3์›” 31์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 4:07 Cory Benfield ์•Œ๋ฆผ @github.com
์ผ๋‹ค:

์„œ๋ฒ„์— ๋Œ€ํ•œ TLS ๊ตฌ์„ฑ๊ณผ OpenSSL์ด ๋ฌด์—‡์ธ์ง€ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋งํฌ๋œ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290738188 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMK55o2K5PaiflW3wHWD_rZYm_WFXXGyks5rrRa6gaJpZM4Mvjzc
.

๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์„œ "์ž˜๋ชป๋œ"์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์— ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์—์„œ๋งŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ SNI๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ? ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋™์ผํ•œ URL๋กœ ์„œ๋ฒ„๋ฅผ ๋ง๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ํ…”๋„ท์œผ๋กœ ์—ฐ๊ฒฐํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•œ ์„œ๋ฒ„์—์„œ๋„ ์š”์ฒญ์ด ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•

๋‘˜ ๋‹ค์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ. ๊ทธ๊ฒƒ์€ SNI๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ํ†ตํ•ด ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์—์„œ ์„œ๋ฒ„๋กœ ํ…”๋„ทํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
์ €๊ฒƒ. http๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ๋…ธ์ถœํ–ˆ์œผ๋ฉฐ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์ „ํžˆ
SSL ํ•ธ๋“œ์…ฐ์ดํฌ ๋ฌด์—‡์ด ์‹คํŒจํ–ˆ๋Š”์ง€

2017๋…„ 3์›” 31์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 4์‹œ 16๋ถ„, Ian Cordasco [email protected]
์ผ๋‹ค:

ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋™์ผํ•œ URL๋กœ ์„œ๋ฒ„๋ฅผ ๋ง๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š”
๊ทธ๋ƒฅ ํ…”๋„ท? ์š”์ฒญ์ด ๋‹ค์Œ์—์„œ ์„œ๋ฒ„์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•œ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  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)).

2017๋…„ 3์›” 31์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 4์‹œ 19๋ถ„, Cory Benfield [email protected]
์ผ๋‹ค:

์ข‹์•„, openssl s_client -connect host:port to๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์„œ๋ฒ„?

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290741631 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMK55oeDzw5HhrujLbMFLA6CCowT0umwks5rrRmLgaJpZM4Mvjzc
.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ํ˜‘์ƒ ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ค์ง€ ๊ด€์‹ฌ์ด ์ ๋ฆฐ๋‹ค.

๋ฐ˜ํ™˜ ์ฝ”๋“œ ํ™•์ธ: 19(์ธ์ฆ์„œ ์ฒด์ธ์˜ ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ)

2017๋…„ 3์›” 31์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 4์‹œ 34๋ถ„, Cory Benfield [email protected]
์ผ๋‹ค:

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ด€์‹ฌ์ด์žˆ๋‹ค.
ํ˜‘์ƒ์ด๋‹ค.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290746053 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMK55o4JyAkpP5h1ZPLBOkRONN2z9Em8ks5rrRz-gaJpZM4Mvjzc
.

๊ทธ๊ฒƒ์ด ์ „์ฒด ๊ฒฐ๊ณผ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ช…๋ น์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์œผ์‹ญ์‹œ์˜ค.

์•„๋‹ˆ์š”, ์ „์ฒด ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ถœ๋ ฅ. ๋ชจ๋“  ๊ฒƒ์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

๊ฑฐ๊ธฐ์—๋Š” ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์ด ์—†์œผ๋ฉฐ tls ๋ฒ„์ „, ์ธ์ฆ์„œ ์ •๋ณด ๋“ฑ ...

์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์—์„œ ์ •ํ™•ํžˆ ๋™์ผํ•œ ์‘๋‹ต์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
El El vie, 2017๋…„ 3์›” 31์ผ ์˜ค์ „ 16์‹œ 40๋ถ„, Cory Benfield [email protected]
๊ธฐ๋ก:

์•„๋‹ˆ์š”, ์ „์ฒด ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ถœ๋ ฅ. ๋ชจ๋“  ๊ฒƒ์ด ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290747930 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMK55iD8dY2eDxdfz1j0YzpteN8ThFJ3ks5rrR58gaJpZM4Mvjzc
.

๊ทธ ์ •๋ณด๊ฐ€ ๋ฐ”๋กœ ๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. TLS Client Hello์˜ ์–ด๋–ค ๊ฒƒ์ด ๊ท€ํ•˜์˜ ์„œ๋ฒ„๋ฅผ ํ™”๋‚˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ท€ํ•˜์˜ ์„œ๋ฒ„๊ฐ€ ๋ฌด์—‡์„ ํ˜‘์ƒํ•˜๋Š”์ง€ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚ด ์ธ์ฆ์„œ๊ฐ€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ญ”๊ฐ€๋ฅผ ํ•ด๋ณด์ž. ๋‚˜๋Š” ๋ฌด์—‡์ด๋“  ๊ฒ€์ƒ‰ํ•  ๊ฒƒ์ด๋‹ค
์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€(์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
๊ณต์œ ) ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์‹œ๋„ ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์„œ๋ฒ„๋„

El El vie, 2017๋…„ 3์›” 31์ผ ์˜ค์ „ 16์‹œ 46๋ถ„, Cory Benfield [email protected]
๊ธฐ๋ก:

๊ทธ ์ •๋ณด๊ฐ€ ๋ฐ”๋กœ ๋‚ด๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ TLS์— ์žˆ๋Š” ๊ฒƒ
Client Hello๊ฐ€ ๊ท€ํ•˜์˜ ์„œ๋ฒ„๋ฅผ ํ™”๋‚˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์˜ ์„œ๋ฒ„๊ฐ€ ๋ฌด์—‡์„ ํ˜‘์ƒํ•˜๊ณ  ์žˆ๋Š”์ง€.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kennethreitz/requests/issues/3948#issuecomment-290749603 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AMK55oT_6jlrkIO4VlXRsoohjEGzNy3pks5rrR_TgaJpZM4Mvjzc
.

๋‹น์‹ ์˜ ์ธ์ฆ์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€(์˜ˆ๊ธฐ์น˜ ์•Š์€ EOF)๋Š” TLS ํ•ธ๋“œ์…ฐ์ดํฌ ์ค‘์— ์„œ๋ฒ„๊ฐ€ TCP FIN ๋˜๋Š” RST ํŒจํ‚ท์„ ์„œ๋ฒ„ ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฐ๊ฒฐ์„ ๋‹ซ๊ธฐ๋กœ ์„ ํƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์„œ๋ฒ„ ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์„ ํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์ธ์ฆ์„œ์˜ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์•„์ง ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จ๊ณ„์— ์ด๋ฅด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@javixeneize ์š”์ฒญํ•œ ์ •๋ณด ์—†์ด๋Š” ์ €ํฌ๊ฐ€ ๋ฌด์—‡์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์›”์š”์ผ์— ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
El El vie, 2017๋…„ 3์›” 31์ผ ๋ผ์Šค 17:19, Ian Cordasco [email protected]
๊ธฐ๋ก:

@javixeneize ์ •๋ณด ์—†์ด https://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 ๋ช…๋ น์˜ ์œ„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด CN์ด ๋‚ด ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” fbbot.quintoapp.com์ž„์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ํ˜ธ์ŠคํŠธ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•œ ๋™์ผํ•œ ๋ช…๋ น์ธ CN์€ api.quinto.ai์˜€์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํŒŒ์ด์ฌ ์„œ๋ฒ„๊ฐ€ ์žˆ๊ณ  ๋‹ค๋ฅธ ์„œ๋ฒ„ api.quinto.ai์— ์š”์ฒญ์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ์—์„œ ์‹คํ–‰ํ•œ ๋™์ผํ•œ ํŒŒ์ด์ฌ ์ฝ”๋“œ, ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๋กœ๊ทธ์ธํ•˜๊ณ  ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋‚ด๋ถ€์—์„œ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ OpenSSL s_client๋Š” ์„œ๋ฒ„ ์ด๋ฆ„ ํ‘œ์‹œ ํ•„๋“œ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์›๊ฒฉ ์„œ๋ฒ„๊ฐ€ ์„ ํƒํ•œ ์ธ์ฆ์„œ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋ฉด ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋™์ผํ•œ ์ถœ๋ ฅ์„ ์–ป์Šต๋‹ˆ๊นŒ?

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

๊ทธ๋ ‡์ง€ ์•Š๋”๋ผ๋„ ์ด๊ฒƒ์€ ์š”์ฒญ์ด ์•„๋‹Œ ๋„์ปค์˜ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” 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 <
์•Œ๋ฆผ@github.com> ์„ค๋ช…:

@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 ๋“ฑ๊ธ‰