Requests: рдПрд╕рдПрд╕рдПрд▓ рддреНрд░реБрдЯрд┐: рдЦрд░рд╛рдм рд╣реИрдВрдбрд╢реЗрдХ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдордИ 2016  ┬╖  33рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдореИрдВ рдкрд╛рдЗрдерди 2.7.5 рдХреЗ рд╕рд╛рде рд╕рд┐рдпреЙрдиреНрдЯреЛрд╕ 7 рдореЗрдВ рдЖрдкрдХреЗ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:

File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)

рдкрд╛рдпрдерди рдпрд╛ рдХрд┐рд╕реА рдПрд╕рдПрд╕рдПрд▓ рд▓рд┐рдм рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реАред рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ CentOS рдФрд░ Ubuntu рдореЗрдВ рдорд┐рд▓реА рд╣реИ, рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

Needs More Information

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрд╣, рдареАрдХ рд╣реИ, рд╣рдо рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪ рдЧрдПред

api.smartsheet.com рдЕрдкрдиреЗ рдЯреАрдПрд▓рдПрд╕ рдХреЛ "рдХреНрд░реЙрд╕-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ Verisign, api.smartsheet.com рд▓рд┐рдП CA, рдореВрд▓ рд░реВрдк рд╕реЗ 1024-рдмрд┐рдЯ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рдЗрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдордЬрдмреВрдд рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдП рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП api.smartsheet.com рдЬреИрд╕реА рд╕рд╛рдЗрдЯреЗрдВ рдПрдХ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ 1024-рдмрд┐рдЯ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, _except_:

  • certifi рдиреЗ рдХрдордЬреЛрд░ 1024-рдмрд┐рдЯ рдЬрдбрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛
  • 1.0.2 рд╕реЗ рдкреБрд░рд╛рдирд╛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрд┐рдд рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреНрд░реЙрд╕-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд░реВрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рджреЛ рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛, рдмреЗрд╣рддрд░ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХрдареЛрд░ рддрд░реАрдХрд╛ рд╣реИ, рдЕрдкрдиреЗ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ 1.0.2 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ред рд╕реЗрдВрдЯреЛрд╕ рдкрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдореБрдЭреЗ рдбрд░ рд╣реИред рдХрдо рдЕрдЪреНрдЫрд╛ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ python -c "import certifi; print certifi.old_where()" рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ REQUESTS_CA_BUNDLE рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдореБрджреНрд░рд┐рдд рдкрде рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред

рд╕рднреА 33 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВ рдФрд░ рдЖрдкрдиреЗ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ?

рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдПрд╕рдПрдирдЖрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдореЗрдВ рдХреБрдЫ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдорд╛рд░реНрдЯрд╢реАрдЯ-рдкрд╛рдпрдерди-рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

pip show requests
---
Metadata-Version: 2.0
Name: requests
Version: 2.10.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: [email protected]
Installer: pip
License: Apache 2.0
Location: /usr/lib/python3.4/site-packages
Requires: 
Classifiers:
  Development Status :: 5 - Production/Stable
  Intended Audience :: Developers
  Natural Language :: English
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python
  Programming Language :: Python :: 2.6
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: 3.5
  Programming Language :: Python :: Implementation :: CPython
  Programming Language :: Python :: Implementation :: PyPy

pip show smartsheet-python-sdk
---
Metadata-Version: 2.0
Name: smartsheet-python-sdk
Version: 1.0.1
Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
Home-page: http://smartsheet-platform.github.io/api-docs/
Author: Smartsheet
Author-email: [email protected]
Installer: pip
License: Apache-2.0
Location: /usr/lib/python3.4/site-packages
Requires: certifi, requests, six, python-dateutil, requests-toolbelt
Classifiers:
  Development Status :: 5 - Production/Stable
  Intended Audience :: Developers
  Natural Language :: English
  Operating System :: OS Independent
  License :: OSI Approved :: Apache Software License
  Programming Language :: Python
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: 3.5
  Programming Language :: Python :: Implementation :: PyPy
  Programming Language :: Python :: Implementation :: CPython
  Topic :: Software Development :: Libraries :: Python Modules
  Topic :: Office/Business :: Financial :: Spreadsheet

рдкрд╛рдЗрдк рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдкреИрдХреЗрдЬ рдФрд░ рдпрдо рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреА...

@pensnarik рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ pip install -U requests[security] рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдзрдиреНрдпрд╡рд╛рдж, рд▓реБрдХрд╛рд╕рд╛, рдЖрдкрдХреА рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ ...

[mutex<strong i="6">@unica1</strong> parser]$ sudo pip install -U requests[security]
[sudo] password for mutex: 
Collecting requests[security]
  Using cached requests-2.10.0-py2.py3-none-any.whl
Collecting pyOpenSSL>=0.13 (from requests[security])
  Using cached pyOpenSSL-16.0.0-py2.py3-none-any.whl
Collecting ndg-httpsclient (from requests[security])
Requirement already up-to-date: pyasn1 in /usr/lib/python2.7/site-packages (from requests[security])
Collecting cryptography>=1.3 (from pyOpenSSL>=0.13->requests[security])
  Using cached cryptography-1.3.2.tar.gz
Requirement already up-to-date: six>=1.5.2 in /usr/lib/python2.7/site-packages (from pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: idna>=2.0 in /usr/lib/python2.7/site-packages (from cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: setuptools>=11.3 in /usr/lib/python2.7/site-packages (from cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: enum34 in /usr/lib/python2.7/site-packages (from cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: ipaddress in /usr/lib/python2.7/site-packages (from cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: cffi>=1.4.1 in /usr/lib64/python2.7/site-packages (from cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Requirement already up-to-date: pycparser in /usr/lib/python2.7/site-packages (from cffi>=1.4.1->cryptography>=1.3->pyOpenSSL>=0.13->requests[security])
Building wheels for collected packages: cryptography
  Running setup.py bdist_wheel for cryptography ... done
  Stored in directory: /root/.cache/pip/wheels/14/df/02/611097a49d7739151deb68d0172dff5ae7cba01b82769e56ef
Successfully built cryptography
Installing collected packages: cryptography, pyOpenSSL, ndg-httpsclient, requests
  Found existing installation: requests 2.6.0
    DEPRECATION: Uninstalling a distutils installed project (requests) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling requests-2.6.0:
      Successfully uninstalled requests-2.6.0
Successfully installed cryptography-1.3.2 ndg-httpsclient-0.4.0 pyOpenSSL-16.0.0 requests-2.10.0
You are using pip version 8.1.0, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[mutex<strong i="7">@unica1</strong> parser]$ ./update_region_price.py 
Traceback (most recent call last):
  File "./update_region_price.py", line 129, in <module>
    sys.exit(app.run(sys.argv))
  File "./update_region_price.py", line 122, in run
    self.update_basic()
  File "./update_region_price.py", line 65, in update_basic
    sheet = self.sm.Sheets.get_sheet(self.sheet_id, page_size=5000)
  File "/usr/lib/python2.7/site-packages/smartsheet/sheets.py", line 460, in get_sheet
    response = self._base.request(prepped_request, expected, _op)
  File "/usr/lib/python2.7/site-packages/smartsheet/smartsheet.py", line 178, in request
    res = self.request_with_retry(prepped_request, operation)
  File "/usr/lib/python2.7/site-packages/smartsheet/smartsheet.py", line 242, in request_with_retry
    return self._request(prepped_request, operation)
  File "/usr/lib/python2.7/site-packages/smartsheet/smartsheet.py", line 208, in _request
    res = self._session.send(prepped_request, stream=stream)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 477, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╣реЛрд╕реНрдЯ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВ?

рд▓реБрдХрд╛рд╕рд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ: https://api.smartsheet.com/2.0 , рдореИрдВ рд╕реНрдорд╛рд░реНрдЯрд╢реАрдЯ рдПрдкреАрдЖрдИ (https://github.com/smartsheet-platform/smartsheet-python-sdk) рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдФрд░ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ certifi рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ?

рд╣реЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

[mutex<strong i="6">@unica1</strong> parser]$ pip show certifi
---
Metadata-Version: 2.0
Name: certifi
Version: 2016.2.28
Summary: Python package for providing Mozilla's CA Bundle.
Home-page: http://certifi.io/
Author: Kenneth Reitz
Author-email: [email protected]
Installer: pip
License: ISC
Location: /usr/lib/python2.7/site-packages
Requires: 
Classifiers:
  Development Status :: 5 - Production/Stable
  Intended Audience :: Developers
  Natural Language :: English
  Programming Language :: Python
  Programming Language :: Python :: 2.5
  Programming Language :: Python :: 2.6
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3.0
  Programming Language :: Python :: 3.1
  Programming Language :: Python :: 3.2
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4

рдЖрд╣, рдареАрдХ рд╣реИ, рд╣рдо рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪ рдЧрдПред

api.smartsheet.com рдЕрдкрдиреЗ рдЯреАрдПрд▓рдПрд╕ рдХреЛ "рдХреНрд░реЙрд╕-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ Verisign, api.smartsheet.com рд▓рд┐рдП CA, рдореВрд▓ рд░реВрдк рд╕реЗ 1024-рдмрд┐рдЯ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рдЗрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдордЬрдмреВрдд рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдП рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП api.smartsheet.com рдЬреИрд╕реА рд╕рд╛рдЗрдЯреЗрдВ рдПрдХ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ 1024-рдмрд┐рдЯ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, _except_:

  • certifi рдиреЗ рдХрдордЬреЛрд░ 1024-рдмрд┐рдЯ рдЬрдбрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛
  • 1.0.2 рд╕реЗ рдкреБрд░рд╛рдирд╛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрд┐рдд рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреНрд░реЙрд╕-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд░реВрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рджреЛ рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛, рдмреЗрд╣рддрд░ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХрдареЛрд░ рддрд░реАрдХрд╛ рд╣реИ, рдЕрдкрдиреЗ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ 1.0.2 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ред рд╕реЗрдВрдЯреЛрд╕ рдкрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдореБрдЭреЗ рдбрд░ рд╣реИред рдХрдо рдЕрдЪреНрдЫрд╛ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ python -c "import certifi; print certifi.old_where()" рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ REQUESTS_CA_BUNDLE рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдореБрджреНрд░рд┐рдд рдкрде рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред

рдЕрд░реНрдШ, рд╕реНрдорд╛рд░реНрдЯрд╢реАрдЯ рдПрд╕рдбреАрдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред

рдирдИ рдпреЛрдЬрдирд╛ред рд╕реНрдорд╛рд░реНрдЯрд╢реАрдЯ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк _anything_ рдФрд░ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

import smartsheet.session
import certifi
smartsheet.session._TRUSTED_CERT_FILE = certifi.old_where()

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ /usr/lib/python2.7/site-packages/smartsheet/session.py рдореЗрдВ рдмрджрд▓ рджреВрдВ:

_TRUSTED_CERT_FILE = certifi.where()

рдкреНрд░рддрд┐

_TRUSTED_CERT_FILE = certifi.old_where()

рдЬрдм рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ...

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯрд╢реАрдЯ рдПрдкреАрдЖрдИ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рдПрдЪрдЖрд░рдПрдоред рдХреНрдпрд╛ рдЖрдк рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

2015.11.20.1 рд╕реЗ 2015.4.28 рддрдХ рдХреЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ!

ubuntu@ip-172-31-58-148 :~/requests$ clear
ubuntu@ip-172-31-58-148 :~/requests$ python
рдкрд╛рдпрдерди 2.7.6 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ, 22 рдЬреВрди 2015, 17:58:13)
[рдЬреАрд╕реАрд╕реА рек.рео.реи] linux2 рдкрд░
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП "рд╕рд╣рд╛рдпрддрд╛", "рдХреЙрдкреАрд░рд╛рдЗрдЯ", "рдХреНрд░реЗрдбрд┐рдЯ" рдпрд╛ "рд▓рд╛рдЗрд╕реЗрдВрд╕" рдЯрд╛рдЗрдк рдХрд░реЗрдВред

рдЖрдпрд╛рдд рдЕрдиреБрд░реЛрдз
request.get ('https://logo.clearbit.com/beutifi.com')
request/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: рдПрдХ HTTPS рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди TLS рдХреЗ рд▓рд┐рдП SNI (рд╡рд┐рд╖рдп рдирд╛рдо рд╕рдВрдХреЗрдд) рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╕рд░реНрд╡рд░ рдЧрд▓рдд TLS рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning рджреЗрдЦреЗрдВред
рдПрд╕рдПрдирдЖрдЗрдорд┐рд╕рд┐рдВрдЧрдЪреЗрддрд╛рд╡рдиреА
request/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: рдПрдХ рд╕рдЪреНрдЪрд╛ SSLContext рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдпрд╣ urllib3 рдХреЛ SSL рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдиреНрдпрд╕реНрдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ SSL рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning рджреЗрдЦреЗрдВред
рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдЪреЗрддрд╛рд╡рдиреА
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "", рд▓рд╛рдЗрди 1, рдЗрди
рдлрд╝рд╛рдЗрд▓ "request/api.py", рд▓рд╛рдЗрди 71, get . рдореЗрдВ
рд╡рд╛рдкрд╕реА рдЕрдиреБрд░реЛрдз ('рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ', url, params = params, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "request/api.py", рд▓рд╛рдЗрди 57, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рд╡рд╛рдкрд╕реА session.request (рд╡рд┐рдзрд┐ = рд╡рд┐рдзрд┐, url = url, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "request/sessions.py", рд▓рд╛рдЗрди 477, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рд╕рдореНрдорд╛рди = рд╕реНрд╡рдпрдВ рднреЗрдЬреЗрдВ (рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛, *_send_kwargs)
рдлрд╝рд╛рдЗрд▓ "request/sessions.py", рд▓рд╛рдЗрди релреорен, рднреЗрдЬреЗрдВ . рдореЗрдВ
рдЖрд░ = рдПрдбреЗрдкреНрдЯрд░ред рднреЗрдЬреЗрдВ (рдЕрдиреБрд░реЛрдз, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "request/adapters.py", рд▓рд╛рдЗрди рекрепрез, рднреЗрдЬреЗрдВ . рдореЗрдВ
SSLError рдмрдврд╝рд╛рдПрдВ (рдИ, рдЕрдиреБрд░реЛрдз = рдЕрдиреБрд░реЛрдз)
request.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14077410 :SSL рд░реВрдЯреАрди:SSL23_GET_SERVER_HELLO :sslv3 рдЕрд▓рд░реНрдЯ рд╣реИрдВрдбрд╢реЗрдХ рд╡рд┐рдлрд▓рддрд╛

рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЗрдирдкреБрдЯ рд╣реИред рдпрд╣ рд╣рд░ https рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

@sProject рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдирдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЖрдкрдХреЛ рдЙрди рджреЛрдиреЛрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╛рдЗрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВ, рддреЛ pip install pyopenssl pyasn1 ndg-httpsclient рдЪрд▓рд╛рдПрдБред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рд╕реЗ рдЙрди рддреАрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рджреЛ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рдЧрд▓рдд рд╣реВрдВ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдмрдЧ рдкрд╛рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

рдкрд╛рдЗрдЧреЛрдбреИрдбреА рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╣реА рдЕрдкрд╡рд╛рдж рдЙрдард╛рддрд╛ рд╣реИ

from pygodaddy import GoDaddyClient
client = GoDaddyClient()
if client.login(login[0],login[1]):
    print client.find_domains()
else: print 'falhou'


$ ./dynip.py 
Traceback (most recent call last):
  File "./dynip.py", line 8, in <module>
    if client.login(login[0],login[1]):
  File "/usr/lib/python2.7/site-packages/pygodaddy/client.py", line 99, in login
    r = self.session.get(self.default_url)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)

@pensnarik рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдлреЗрдбреЛрд░рд╛ 24, рдкрд╛рдпрдерди 2.7.12 рд╣реИред

# pip list
Babel (2.3.4)
beautifulsoup4 (4.5.1)
blinker (1.4)
certifi (2016.9.26)
cffi (1.9.1)
chardet (2.3.0)
click (6.6)
cryptography (1.5.3)
cssselect (0.9.2)
decorator (4.0.10)
django-htmlmin (0.9.1)
dnspython (1.14.0)
enum34 (1.1.6)
extras (1.0.0)
first (2.0.1)
fixtures (3.0.0)
Flask (0.11.1)
Flask-Babel (0.11.1)
Flask-Gravatar (0.4.2)
Flask-Login (0.3.2)
Flask-Mail (0.9.1)
Flask-Principal (0.4.0)
Flask-Security (1.7.5)
Flask-SQLAlchemy (2.1)
Flask-WTF (0.12)
gps (3.16)
gssapi (1.2.0)
html5lib (1.0b3)
idna (2.1)
importlib (1.0.4)
iniparse (0.4)
ipaclient (4.3.2)
ipaddress (1.0.17)
ipalib (4.3.2)
ipaplatform (4.3.2)
ipapython (4.3.2)
itsdangerous (0.24)
Jinja2 (2.8)
jwcrypto (0.3.2)
kitchen (1.2.4)
linecache2 (1.0.0)
lockfile (0.12.2)
lxml (3.6.4)
M2Crypto (0.25.1)
MarkupSafe (0.23)
munch (2.0.4)
ndg-httpsclient (0.4.2)
netaddr (0.7.18)
nose (1.3.7)
numpy (1.11.1)
passlib (1.6.5)
pbr (1.10.0)
pif (0.7.3)
Pillow (3.3.1)
pip (8.1.2)
pip-tools (1.7.0)
ply (3.9)
psutil (4.3.0)
psycopg2 (2.6.2)
pwquality (1.3.0)
pyasn1 (0.1.9)
pyasn1-modules (0.0.8)
pycparser (2.17)
pycrypto (2.6.1)
pycurl (7.43.0)
pygobject (3.20.1)
pygodaddy (0.2.2)
pygpgme (0.3)
pyliblzma (0.5.3)
pyOpenSSL (16.2.0)
pyrsistent (0.11.13)
PySocks (1.5.7)
python-dateutil (2.5.3)
python-fedora (0.8.0)
python-ldap (2.4.27)
python-mimeparse (1.5.2)
python-nss (1.0.0)
python-yubico (1.3.2)
pytz (2016.6.1)
pyusb (1.0.0)
pyxattr (0.5.5)
qrcode (5.3)
reportlab (3.3.0)
requests (2.12.1)
requests-file (1.4.1)
rpm-python (4.13.0)
scdate (1.10.9)
setuptools (28.8.0)
simplejson (3.8.2)
six (1.10.0)
slip (0.6.4)
speaklater (1.3)
SQLAlchemy (1.0.14)
sqlparse (0.2.1)
SSSDConfig (1.14.2)
Terminator (0.98)
testscenarios (0.5.0)
testtools (2.2.0)
tldextract (2.0.2)
traceback2 (1.4.0)
typing (3.5.2.2)
uniconvertor (2.0)
unittest2 (1.1.0)
urlgrabber (3.10.1)
urllib3 (1.16)
Werkzeug (0.11.11)
WTForms (2.1)
yum-metadata-parser (1.1.4)

GoDaddy рдЖрдкрдХреЛ рдПрдХ рдЕрдкреВрд░реНрдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рддреЛ рдЖрдкрдХреЛ рд▓рд╛рдкрддрд╛ рдордзреНрдпрд╕реНрде рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЯреНрд░рд╕реНрдЯ рд╕реНрдЯреЛрд░ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЖрдкрдХреЛ GoDaddy рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдЧрдбрд╝рдмрдбрд╝реА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ред

@ рд▓реБрдХрд╛рд╕рд╛ рдХреЛрдИ рдХреИрд╕реЗ рдЬрд╛рдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЕрдиреБрд░реЛрдз рдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╣реИ рдпрд╛ рдирд╣реАрдВ?
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдВрдЯреНрд░рд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ URL рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ [SSL: CERTIFICATE_VERIFY_FAILED]

рдкреВрд░реНрдг рдЯреНрд░реЗрд╕рдмреИрдХ

$ python main.py
Traceback (most recent call last):
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 594, in urlopen
    chunked=chunked)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 350, in _make_request
    self._validate_conn(conn)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 835, in _validate_conn
    conn.connect()
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/connection.py", line 323, in connect
    ssl_context=context)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/util/ssl_.py", line 324, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 376, in wrap_socket
    _context=self)
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 747, in __init__
    self.do_handshake()
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 983, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 628, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 624, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 64, in <module>
    r = s.get('https://infoproducts.alcatel-lucent.com/cgi-bin/get_doc_list.pl?entry_id=1-0000000000662&srch_how=&srch_str=&release=&model=&category=&contype=&format=&sortby=&how=all_prod',
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/Users/romandodin/venvs/nokdok/lib/python3.5/site-packages/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ

$ pip list
certifi (2016.9.26)
pip (9.0.1)
requests (2.12.4)
setuptools (32.3.1)
wheel (0.29.0)

рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рд╡рд░рдг

Subject infoproducts.alcatel-lucent.com
SAN infoproducts.alcatel-lucent.com
documentation.alcatel-lucent.com
Valid From Thu, 01 Dec 2016 13:15:08 GMT
Valid Until Sat, 01 Dec 2018 13:45:07 GMT
Issuer Entrust Certification Authority - L1K

рд╕рдорд╕реНрдпрд╛ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд┐рд░реБрджреНрдз openssl s_client -connect "<your-host>:<your-port>" -showcerts -servername "<your-host>" рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрдорд╛рдВрдб рдХрд╛ рд╕рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╕рдордп рд╣реИ:

$ openssl s_client -connect "infoproducts.alcatel-lucent.com:443" -showcerts -servername "infoproducts.alcatel-lucent.com"
CONNECTED(00000003)
depth=0 /C=US/ST=Illinois/L=Naperville/O=Alcatel-Lucent USA Inc./CN=infoproducts.alcatel-lucent.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=US/ST=Illinois/L=Naperville/O=Alcatel-Lucent USA Inc./CN=infoproducts.alcatel-lucent.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=US/ST=Illinois/L=Naperville/O=Alcatel-Lucent USA Inc./CN=infoproducts.alcatel-lucent.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Illinois/L=Naperville/O=Alcatel-Lucent USA Inc./CN=infoproducts.alcatel-lucent.com
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
-----BEGIN CERTIFICATE-----
MIIFeDCCBGCgAwIBAgIRAO3KTvH+nKgrAAAAAFDanDYwDQYJKoZIhvcNAQELBQAw
gboxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
MjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLjAs
BgNVBAMTJUVudHJ1c3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBMMUswHhcN
MTYxMjAxMTMxNTA4WhcNMTgxMjAxMTM0NTA3WjCBgTELMAkGA1UEBhMCVVMxETAP
BgNVBAgTCElsbGlub2lzMRMwEQYDVQQHEwpOYXBlcnZpbGxlMSAwHgYDVQQKExdB
bGNhdGVsLUx1Y2VudCBVU0EgSW5jLjEoMCYGA1UEAxMfaW5mb3Byb2R1Y3RzLmFs
Y2F0ZWwtbHVjZW50LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AK23xiJ/GCWNJa8Oa6SAYwT7QTmIJOXGrfLLZM9ZWDK81SVLm5xUAVRYaYmb3t/U
KpzeUoL+cJIa2xJGdbj50ehUTbB3SOXW7dxr15fuWahSChqaNkI/NClNAxy2Vho5
HxEtsjmuoJ0cNRcZLHZndLtWi27js3ivGxFxUcl7O3rGGj9yb+XXwJvEOsITPfZ/
gpURnHfAurZrw1+xpsArQVOF6+K6KkPnjGoCj0XCyU3LnWc6akcwwwV+HXcW8H5G
/CPvcm3DpI+45v/P2vVJ9+LiEJVHngVYK2QQ8fMDrvS2vs563I4PLnnRds0eOJph
LfHmn87oSW5jCP3RnsW0czECAwEAAaOCAa4wggGqMA4GA1UdDwEB/wQEAwIFoDAT
BgNVHSUEDDAKBggrBgEFBQcDATAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
LmVudHJ1c3QubmV0L2xldmVsMWsuY3JsMEsGA1UdIAREMEIwNgYKYIZIAYb6bAoB
BTAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAIBgZn
gQwBAgIwaAYIKwYBBQUHAQEEXDBaMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5l
bnRydXN0Lm5ldDAzBggrBgEFBQcwAoYnaHR0cDovL2FpYS5lbnRydXN0Lm5ldC9s
MWstY2hhaW4yNTYuY2VyMEwGA1UdEQRFMEOCH2luZm9wcm9kdWN0cy5hbGNhdGVs
LWx1Y2VudC5jb22CIGRvY3VtZW50YXRpb24uYWxjYXRlbC1sdWNlbnQuY29tMB8G
A1UdIwQYMBaAFIKicHTdvFM/z3vU981/p2DGCky/MB0GA1UdDgQWBBT9w+iH+fpG
UJ0IMw1vVpn+91hk6jAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAgOcDq
0YsihBWAxA4WFIGkdB/JdOKLRQ0Hvc7KStgtdkB1AqkUv7oBnDCHesazw4vyWbjv
w7dBTtB95jq1ZHX6eHyUDUo2xBmjnaeb2lSAdVV6j10sl7lMfRQh7ba1Im0ibhfe
7gvBn0tUlmdGqqvDqokzV4lVX74Z9nKKKr5D9e3vJsb5AvbDC/eYguBK9Oy8EDa2
ZcuPve3mB68lVy5UDg21RVZE072qC0FlYhNasZlMVUUg7tgDMlynQeeoxHe7Rcic
pHANQxJqtN8/bsE2mO/ryRZALyC7mWeDvG522ZXMaKslwTUr+jokpyUF7tS786Pi
n4zJ/KNZK2suVwcK
-----END CERTIFICATE-----
---
Server certificate
subject=/C=US/ST=Illinois/L=Naperville/O=Alcatel-Lucent USA Inc./CN=infoproducts.alcatel-lucent.com
issuer=/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
---
No client certificate CA names sent
---
SSL handshake has read 1556 bytes and written 466 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 48D3C9611E37C997182C4F123E21BCFD909D8D4BE887B44355866B80D44E1163
    Session-ID-ctx:
    Master-Key: 0A4A9E2A10E33EAA248541C39AC71F2F879310BAE141A4EA26F425D56C27099FB6D6572C2CCFC763FC743ECF99DABB5B
    Key-Arg   : None
    Start Time: 1483448892
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
closed

рд╣рд╛рдБ, рддреЛ рд╕рд░реНрд╡рд░ рдЧрд▓рдд рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреАрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИред рдПрдХ рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕реЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдмрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ ("рд▓реАрдл") рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╣рдо рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ ("рд░реВрдЯ")ред рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдо рд╣реИ: рд░реВрдЯ рдХреЛ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЛ рдЪрд░рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреА рд╣реЛрддреА рд╣реИ: рдЕрд░реНрдерд╛рддреН, рдкрддреНрддреА рдкрд░ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рддрдерд╛рдХрдерд┐рдд рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕ рдордзреНрдпрд╡рд░реНрддреА рдкрд░ рд╕реНрд╡рдпрдВ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдордзреНрдпрд╡рд░реНрддреА рджреНрд╡рд╛рд░рд╛ рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ рдПрдХ рдРрд╕реЗ рдордзреНрдпрд╡рд░реНрддреА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ рдЬрд┐рд╕ рдкрд░ рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЧрдП рдереЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, https://python-hyper.org рдХреЗ рд▓рд┐рдП, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. python-hyper.org, "рдкрддреНрддреА", рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛
  2. рдЖрдЗрдП рдПрдирдХреНрд░рд┐рдкреНрдЯ рдЕрдереЙрд░рд┐рдЯреА X3, рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ
  3. DST рд░реВрдЯ CA X3, рд╡рд╣ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд┐рд╕ рдкрд░ рдореЗрд░рд╛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдФрд░ рдЕрдиреБрд░реЛрдз) рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реИ

рдЬрд┐рд╕ рд╕рд╛рдЗрдЯ рддрдХ рдЖрдк рдкрд╣реБрдВрдЪ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП :

  1. infoproducts.alcatel-lucent.com, рд▓реАрдл
  2. рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реМрдВрдкреЗрдВ - L1K, рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд┐рд╕рдиреЗ рдкрддреНрддреА рдЬрд╛рд░реА рдХреА
  3. рдПрдВрдЯреНрд░рд╕реНрдЯ рд░реВрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрд╢рди рдЕрдереЙрд░рд┐рдЯреА - G2, рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд░реВрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ

рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдЯреНрд░рд╕реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдВрдЦреНрдпрд╛ 3 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдВрдЦреНрдпрд╛ 1 рднреЗрдЬ рд░рд╣рд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдкреНрд░рдорд╛рдгрдкрддреНрд░ 1 рд╕реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ 3 рддрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ 2 рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдирд╣реАрдВ рднреЗрдЬ рд░рд╣рд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХрд░реНрдЯ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреИрд╢ рдХреЛ рдмрдирд╛рдП рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ 2 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд░рдорд╛рдгрдкрддреНрд░ 2 рдХреЗ рдмрд┐рдирд╛, рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЯреАрдПрд▓рдПрд╕ рд╕рд░реНрд╡рд░ рд▓реАрдл рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЬрд┐рди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдиреЗ рдХрднреА рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЗ рдЕрднреА рднреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рддреБрд▓рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЗ рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ python-hyper.org рд╡рд┐рд░реБрджреНрдз рдЪрд▓рд╛рдПрдВ:

% openssl s_client -connect python-hyper.org:443 -showcerts -servername "python-hyper.org"
CONNECTED(00000003)
depth=1 /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/CN=python-hyper.org
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
MIIFBDCCA+ygAwIBAgISAwji03rFoFMPZnEC0rLc7jg3MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzAxMDExMjA4MDBaFw0x
NzA0MDExMjA4MDBaMBsxGTAXBgNVBAMTEHB5dGhvbi1oeXBlci5vcmcwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjF6VMEOe2qHsdbAnYstunDCW5/fBx
yhzNAxSqZKA5qfATdvhDmiPFnHJkQgUkUeGDwbBwemxuUFUaGZKTJDRhlrymLSkN
hkcouBzs/mxDjNlKacokJBm3hpu+oxYohhxPIZBs8NM4olUPDSG68r6sd1EwR+Ia
Lw//nRsMpcrGNmYy+howiBvV3CbuYsbgB59bJ+5y6G2ZqeHMwzFZ+No1oQmBck9T
KAvCh5TteQphzcM9s9NZiB6Z9C0s+vBPKOc1uLssCI3hfr29Af203CX2xgyBjXH7
M4WS17o1zLgs3Q2V03gQ7AmhtgjuJ+2NRf/d6Bsmk8ZhGnyyf+qbY+G/AgMBAAGj
ggIRMIICDTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMD50AC8wul1eNKkGVxaAvXb
DSkDMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMHAGCCsGAQUFBwEB
BGQwYjAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0
Lm9yZy8wLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlw
dC5vcmcvMBsGA1UdEQQUMBKCEHB5dGhvbi1oeXBlci5vcmcwgf4GA1UdIASB9jCB
8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpodHRw
Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlzIENl
cnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcgUGFy
dGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmljYXRl
IFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBvc2l0
b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAgX00tBHyz9GiDQjw+Id7sbT1lrtHrmtR
DB+kofnq9pkwIExDXT0bAZ14EnU6atiVqhF3j3KxvxIfbNvmSr7emmhPwt+KqOf7
/1m+gxg3ode9LIg6oLtVOfulecxkS4/Wj990O40vuRNdy4XT4PSNze8iuJtGALoS
U9kP8G/V6VnrdbTYhSIIUW9nm0XQcOUbvupFWtiwE8vZw4t0pQloeECdMuALgVO/
1xSu0kqZgidLOkFwei/xqItx7foREzVvq3kUHD1OAuPI1azHQjErQC3N12OmxmBU
3KDOsaJC2Uu8fqI/y1YOkO97hpsgFZX4BiQNaNhtyy7sscD/teVhWQ==
-----END CERTIFICATE-----
 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
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=python-hyper.org
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
---
SSL handshake has read 2638 bytes and written 451 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: BBDF2CA65B2142C1F0C416B28C4FDF8FD5118ED4D5FF8802789D0B54C6309469
    Session-ID-ctx: 
    Master-Key: BD9B8B97EC439248CC5849EBF4B2ED18E0A73472EB8D86FE6F038C4E6944AFD8A163D80D47A3A3B28A6237A44C1B31CE
    Key-Arg   : None
    Start Time: 1483447980
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рднреЗрдЬреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрд╕рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рднреЗрдЬрд╛ рд╣реИред

рдпрд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд▓реАрдл рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдЬрдм рдореИрдВ рдпрд╣рд╛рдВ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрд╡рд╛рд▓рд┐рд╕ рдПрд╕рдПрд╕рдПрд▓ рд▓реИрдмреНрд╕ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ред =)

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЗрд╕ рд╢реИрдХреНрд╖рд┐рдХ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ рд▓реБрдХрд╛рд╕рд╛ ! рдЗрд╕рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдФрд░ рдЦреЗрдж рд╣реИ, рдпрд╣ рдореЗрд░рд╛ рдЯреАрдПрд▓рдПрд╕-рдЬреНрдЮрд╛рди-рдЕрдВрддрд░ рдерд╛ =) рдЬреНрдпрд╛рджрд╛рддрд░ рдореИрдВ рдореБрджреНрджреЛрдВ рдкрд░ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдерд╛ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓ рдирд╣реАрдВ рд╣реИ (рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ), рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдВрдЪ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛

@hellt рдорд╛рдлреА рдорд╛рдВрдЧрдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬреЛ рдмреЗрд╣рдж рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рдЕрдЪреНрдЫреА рдХрдВрдкрдиреА рдореЗрдВ рд╣реИрдВред =)

рдПрдХ рдЙрдкрд╛рдп рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдмрдВрдбрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк verify рдкрд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдмрдВрдбрд▓ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмрдВрдбрд▓ рдореЗрдВ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдордзреНрдпрд╕реНрде рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЖрдк рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЪреЗрди (рдЬреЛ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЪрд▓рд╛рдХрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ python -c 'import certifi; print(certifi.where())' , рдЗрд╕реЗ рдЕрдкрдиреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╣реАрдВ рдФрд░ рдХреЙрдкреА рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрддред рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЛ рдкреАрдИрдПрдо рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдлрд┐рд░ рдирдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдВрдбрд▓ рдХреЗ рдкрде рдХреЛ verify kwarg рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рд▓реБрдХрд╛,
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ;
рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░
рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдПрдХрддреНрд░рд┐рдд рдХрд░рдирд╛
URL рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛ https://pypi.python.org/simple/certifi/ : ssl рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА: [Errno 2] рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ - рдЫреЛрдбрд╝рдирд╛
рдРрд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реЛ (рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ: )
рдкреНрд░рдорд╛рдгрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд┐рд▓рд╛рди рд╡рд┐рддрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛

рдХреНрдпреВ

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреАрдкреАрдкреАрдЖрдИ рд╕реЗ рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдереЛрдбрд╝рд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рдкрд╛рдЗрдк рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЕрдиреНрдп рдкрд╛рдпрдерди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ?

рд╣реИрд▓реЛ рд╕рднреА рдХреЛ,
рдореИрдВ рдЕрдкрдиреЗ рд╕рдВрдЧрдарди рдХреЗ рдЗрдВрдЯреНрд░рд╛рдиреЗрдЯ рдХреЗ рднреАрддрд░ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд░реНрдмреЗрд░реЛрдЬ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЖрдпрд╛рдд рдЕрдиреБрд░реЛрдз
request_kerberos рд╕реЗ рдЖрдпрд╛рдд HTTPKerberosAuth
r = request.get("https: * * * * * ", auth=HTTPKerberosAuth ())

SSLError: ("рдЦрд░рд╛рдм рд╣реИрдВрдбрд╢реЗрдХ: рддреНрд░реБрдЯрд┐ ([('рдПрд╕рдПрд╕рдПрд▓ рд░реВрдЯреАрди', 'ssl3_get_server_certificate', 'рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рд╡рд┐рдлрд▓')],)",)

рдХреНрдпрд╛ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреИрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА?

@ ajitmuley5 рдЬрдм рдЖрдк рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЬреИрд╕реЗ рдкреНрд░рд╢реНрди StackOverflow рдкрд░ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдФрд░ рдмрдВрдж рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рдЦреБрд╢реА-рдЦреБрд╢реА рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреЗред

@ рд▓реБрдХрд╛рд╕рд╛ рдзрдиреНрдпрд╡рд╛рдж! sudo pip install -U request[security] рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓реЗ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

remram44 picture remram44  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mitar picture mitar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thadeusb picture thadeusb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Matt3o12 picture Matt3o12  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jake491 picture jake491  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ