Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ValueError: check_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED #47

Open
deadsandro opened this issue Mar 7, 2022 · 2 comments
Labels

Comments

@deadsandro
Copy link
Contributor

Traceback (most recent call last):
  File "/usr/local/bin/ydcmd", line 2668, in <module>
    yd_ls_cmd(options, args)
  File "/usr/local/bin/ydcmd", line 1988, in yd_ls_cmd
    result = listvalues(yd_list(options, yd_remote_path(path)))
  File "/usr/local/bin/ydcmd", line 1105, in yd_list
    part = yd_query(options, method, url, args)
  File "/usr/local/bin/ydcmd", line 967, in yd_query
    return yd_query_retry(options, method, url, args, headers, target, data)
  File "/usr/local/bin/ydcmd", line 903, in yd_query_retry
    result = opener.open(request, timeout = options.timeout)
  File "/usr/lib/python2.7/urllib2.py", line 429, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 447, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/local/bin/ydcmd", line 413, in https_open
    return self.do_open(self._get_connection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1195, in do_open
    h.request(req.get_method(), req.get_selector(), req.data, headers)
  File "/usr/local/bin/ydcmd", line 314, in request
    self._send_request(method, url, body, headers, **kwargs)
  File "/usr/lib/python2.7/httplib.py", line 1098, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 1054, in endheaders
    self._send_output(message_body)
  File "/usr/local/bin/ydcmd", line 370, in _send_output
    self.send(msg)
  File "/usr/local/bin/ydcmd", line 382, in send
    self.connect()
  File "/usr/local/bin/ydcmd", line 274, in connect
    context.check_hostname = True
ValueError: check_hostname needs a SSL context with either CERT_OPTIONAL or CERT_REQUIRED
# python -V
Python 2.7.16

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

# git log
commit 9b8e16631071688e2cda5dbbdc85c6d48ce42a01
Merge: 12f0e85 2279c19

На старом сервере последний коммит 35d704d6f7629bd9e519de483693639e8835e944 , там все работает.
Python 2.7.13, Debian 9.13

@abbat
Copy link
Owner

abbat commented Mar 7, 2022

Смерджил, можно закрывать?

@abbat abbat added the bug label Mar 7, 2022
@deadsandro
Copy link
Contributor Author

deadsandro commented Mar 7, 2022

Прошу прощения. не владею питоном на достаточном уровне. Неправильный порядок выполнения привел к той же ошибке. к моим пулл реквестам прошу относиться с некоторым уровнем недоверия.
Верно было сначала установить context.verify_mode = ssl.CERT_REQUIRED, а затем уже вызывать context.check_hostname = True

image

image

Также хорошо было бы проверить на python 3+. У меня работает.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants