Httpie: requests.exceptions.SSLError: [Errno 8] _ssl.c:507: ν”„λ‘œν† μ½œ μœ„λ°˜μœΌλ‘œ EOFκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2015λ…„ 02μ›” 28일  Β·  23μ½”λ©˜νŠΈ  Β·  좜처: httpie/httpie

HTTPie 1.0.0-dev
HTTPie data: /Users/kaji/.httpie
Requests 2.5.3
Pygments 2.0.2
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] darwin
Not every SSL website shows though. So, it is tricky. From browser , it is working fine.

>>> requests.request({'allow_redirects': False,
 'auth': None,
 'cert': None,
 'data': OrderedDict(),
 'files': DataDict(),
 'headers': {'User-Agent': 'HTTPie/1.0.0-dev'},
 'method': 'get',
 'params': ParamsDict(),
 'proxies': {},
 'stream': True,
 'timeout': 30,
 'url': u'https://apissl.example.com',
 'verify': True})

Traceback (most recent call last):
  File "/usr/local/bin/http", line 9, in <module>
    load_entry_point('httpie==1.0.0-dev', 'console_scripts', 'http')()
  File "/Library/Python/2.7/site-packages/httpie/core.py", line 112, in main
    response = get_response(args, config_dir=env.config.directory)
  File "/Library/Python/2.7/site-packages/httpie/client.py", line 41, in get_response
    response = requests_session.request(**kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ…Έλ ₯ν•˜λ‹€

$ pip install --force-reinstall requests[security]

@kajisaap 더 λ‚˜μ€ 도움을 λ“œλ¦΄ 수 μžˆλ„λ‘ URL을 μ΄λ©”μΌλ‘œ λ³΄λ‚΄μ£Όμ„Έμš”. λ‚΄ 이메일은 λ‚΄ ν”„λ‘œν•„ νŽ˜μ΄μ§€μ— μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  23 λŒ“κΈ€

@kajisaap URL이 λ¬΄μ—‡μ΄μ—ˆλ‚˜μš”? apissl.example.com 이(κ°€) ν•΄κ²°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@jakubroztocil λΆ™μ—¬λ„£κ³  μ‹Άμ§€λ§Œ 곡개 문제 λͺ©λ‘μ— νšŒμ‚¬ URL이 ν‘œμ‹œλ˜λŠ” 것이 μ‹«μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ 디버그 둜그λ₯Ό λΆ™μ—¬λ„£μ—ˆμŠ΅λ‹ˆλ‹€. API 끝점 URL이 디버깅 λͺ©μ μœΌλ‘œ μ€‘μš”ν•œ 경우 개인적으둜 λ©”μ‹œμ§€λ₯Ό 보내렀면 μ–΄λ–»κ²Œ ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

@jakubroztocil , μ—¬κΈ°μ—μ„œ μœ μ‚¬μ„±μ„ κ°€μ •ν•©λ‹ˆλ‹€ https://github.com/kennethreitz/requests/issues/2056

μ—…μŠ€νŠΈλ¦Ό 문제인 것 κ°™μŠ΅λ‹ˆλ‹€. 링크된 λ¬Έμ œμ— μ–ΈκΈ‰λœ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•΄ λ³΄μ‹­μ‹œμ˜€.

λ…Έλ ₯ν•˜λ‹€

$ pip install --force-reinstall requests[security]

@kajisaap 더 λ‚˜μ€ 도움을 λ“œλ¦΄ 수 μžˆλ„λ‘ URL을 μ΄λ©”μΌλ‘œ λ³΄λ‚΄μ£Όμ„Έμš”. λ‚΄ 이메일은 λ‚΄ ν”„λ‘œν•„ νŽ˜μ΄μ§€μ— μžˆμŠ΅λ‹ˆλ‹€.

@sigmavirus24 sudo pip install --force-reinstall 'requests[security]' --upgrade 도움이 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. μ‹œμŠ€ν…œ 정보가 차이λ₯Ό λ§Œλ“€ 수 μžˆλŠ” 경우 μ €λŠ” Yosemite 10.10.2λ₯Ό μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

@kajisaap openssl version 둜 λŒ“κΈ€λ„ 달 수 μžˆλ‚˜μš”?

μ°Έκ³  사항: @jakubroztocil μš”μ²­μ— λŒ€ν•œ 디버그 호좜이 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€. requests.request 은 ν•΄λ‹Ή 사전을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ°€μΉ˜λŠ” requests.request(**{ #... μ—¬μ•Ό ν•©λ‹ˆλ‹€.

@kajisaap 도 python -c 'import ssl; print(ssl.OPENSSL_VERSION)'

$>python -c 'import ssl; print(ssl.OPENSSL_VERSION)'                                                                                         
OpenSSL 0.9.8zc 15 Oct 2014

@sigmavirus24 κ°μ‚¬ν•©λ‹ˆλ‹€, μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€

κ·Έλž˜μ„œ μ €λŠ” python 3.4.2의 μ›Ήμ‚¬μ΄νŠΈμ— 0개의 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 이것은 SNI 문제인 것 κ°™μŠ΅λ‹ˆλ‹€. 참고둜 이것은 λ‚΄ openssl λ²„μ „μž…λ‹ˆλ‹€.

>>> import ssl
>>> print(ssl.OPENSSL_VERSION)
OpenSSL 1.0.1l 15 Jan 2015

κ·ΈλŸ¬λ‚˜ λ˜ν•œ μš”μ²­λ§Œ μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

python 2.7.9μ—μ„œλŠ” λ™μΌν•œ openssl λ²„μ „μ—μ„œ λ™μΌν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€. ν₯λ―Έλ‘­κ²Œλ„ py2.7.9의 μž„μ‹œ virtualenv에 requests[security] μ„€μΉ˜λŠ” μ‹€νŒ¨ν•˜μ§€λ§Œ pyOpenSSL의 SysCallError μ—λŠ” μ œλŒ€λ‘œ λ°˜ν™˜λ˜λŠ” __str__ λ©”μ„œλ“œκ°€ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. ν˜•μ‹ν™”λœ str ). 이 였λ₯˜λŠ” ν•Έλ“œμ…°μ΄ν¬ μ‹€νŒ¨λ‘œ μΈν•œ 것이기도 ν•©λ‹ˆλ‹€. μ €λŠ” python 2.7.9(brew λ˜λŠ” Python.orgλ₯Ό 톡해)둜 μ—…κ·Έλ ˆμ΄λ“œν•˜κ³  openssl을(brew 및 κ°•μ œ 연결을 톡해) μ—…κ·Έλ ˆμ΄λ“œν•©λ‹ˆλ‹€. λ‚˜λŠ” λ˜ν•œ OSX 10.10에 μžˆμŠ΅λ‹ˆλ‹€

#262 / #288의 λ³΅μ œν’ˆ 같은 λƒ„μƒˆκ°€ λ‚©λ‹ˆλ‹€.

@mathiasbynens 이것은 λ‚΄κ°€ 말할 μˆ˜μžˆλŠ” ν•œ SNI와 아무 관련이 μ—†μŠ΅λ‹ˆλ‹€. @kajisaap 이 응닡을 λ©ˆμ·„μœΌλ―€λ‘œ λ‚˜λŠ” 이것을 λΆˆμ™„μ „ν•œ κ²ƒμœΌλ‘œ λ‹«λŠ” 것에 λŒ€ν•΄ +1:μž…λ‹ˆλ‹€.

@sigmavirus24 ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€. 방금 이전 λŒ“κΈ€μ—μ„œ "이것은 SNI 문제인 것 κ°™μŠ΅λ‹ˆλ‹€" 라고 λ§μ”€ν•˜μ…¨μŠ΅λ‹ˆλ‹€.

이 였λ₯˜λ„ μžˆμŒμ„ ν™•μΈν•©λ‹ˆλ‹€.

$ http https://larlet.fr

http: error: SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

ν•΄λ‹Ή λ²„μ „μ˜ OpenSSL 및 HTTPie μ‚¬μš©:

$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2 22 Jan 2015
$ http --version
0.9.2

λ‚˜λŠ” κ°œμ„ μ—†μ΄ μš”μ²­μ˜ λ³΄μ•ˆ λͺ¨λ“ˆλ‘œ κ°•μ œ μž¬μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

localhostμ—μ„œ hello-world Dropwizard 앱을 λˆ„λ₯΄λŠ” 데 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€(μ˜ˆμƒ 응닡은 빈 JSON λ°°μ—΄μž„).

$ http --verify=no https://localhost:8443/hello

http: error: SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",) while doing GET request to URL: https://localhost:8443/hello
$ curl -k https://localhost:8443/hello
[]

λ‚˜λŠ” μ—¬μ „νžˆ μ΄κ²ƒμ„λ³΄κ³ μžˆλ‹€ :

$ python --version
Python 2.7.11
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2f  28 Jan 2016

μš”μ²­μ˜ λ³΄μ•ˆ λͺ¨λ“ˆμ„ κ°•μ œλ‘œ λ‹€μ‹œ μ„€μΉ˜ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€. 기쁨이 μ—†μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”,
μ‹€ν–‰ν•  λ•Œ python 2.7.9 및 Requests λͺ¨λ“ˆμ— samme λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
r = μš”μ²­.get(url=urloo,headers=self.headers, 확인=거짓)
urloo = https://10.xxx.xx.xxxx :yyyyy/oo/rest/latest/executions/21589456/summary
μš”μ²­ λ°˜ν™˜:
파일 "C:ApplicationsPython27libsite-packagesrequests-2.9.1-py2.7.eggrequestsadapters.py", 447ν–‰, 보내기
SSLError(e, μš”μ²­=μš”μ²­) λ°œμƒ
requests.exceptions.SSLError: [Errno 8] _ssl.c:507: ν”„λ‘œν† μ½œ μœ„λ°˜μœΌλ‘œ EOFκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
확인 헀더가 False둜 λ°°μΉ˜λ©λ‹ˆλ‹€.

μ•„λ§ˆλ„ kennethreitz/requests#3006κ³Ό 관련이 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

λˆ„κ΅°κ°€ Python 2.7.6μ—μ„œ 이 문제λ₯Ό κ²½ν—˜ν•©λ‹ˆκΉŒ?
그렇지 μ•Šμ€ 경우 관련될 수 μžˆμŠ΅λ‹ˆλ‹€. http://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl

@sigmavirus24 κ°€ μ œμ•ˆν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

pip install --force-reinstall requests[security]
이것은 macOS Sierra 10.12의 python 2.7.10κ³Ό ν•¨κ»˜μ˜€μŠ΅λ‹ˆλ‹€.

https://github.com/jkbrzt/httpie#sni -μ„œλ²„ 이름 ν‘œμ‹œ

https://github.com/apache/fineract/pull/644 μ—μ„œ apt-get install httpie 버전이 Travis CI에 μ„€μΉ˜λ˜λŠ”( dist: trusty 포함) 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. --verify=no ( --verify no μ•„λ‹˜)λ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. (SSL이 μžˆλŠ” 곡개 μ›Ήμ‚¬μ΄νŠΈμ—λŠ” 이것을 μ‚¬μš©ν•˜κ³  싢지 μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” 자체 μ„œλͺ…λœ μΈμ¦μ„œκ°€ μžˆλŠ” https://localhost:8443/...μš©μ΄μ—ˆμŠ΅λ‹ˆλ‹€.)

https://github.com/jkbrzt/httpie#sni -μ„œλ²„ 이름 ν‘œμ‹œ

참고둜 이 μ•΅μ»€λŠ” κ·Έλ™μ•ˆ 제거된 것 κ°™μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

Abdallah-Obaid picture Abdallah-Obaid  Β·  4μ½”λ©˜νŠΈ

Govinda-Fichtner picture Govinda-Fichtner  Β·  6μ½”λ©˜νŠΈ

chuma picture chuma  Β·  3μ½”λ©˜νŠΈ

rashthedude picture rashthedude  Β·  3μ½”λ©˜νŠΈ

a-x- picture a-x-  Β·  7μ½”λ©˜νŠΈ