GregEremeev / rosreestr-api

Toolset to work with rosreestr.ru/api and pkk.rosreestr.ru/api
Other
54 stars 9 forks source link

модуль отваливается с ошибкой: requests.exceptions.SSLError #3

Closed evgeniusb closed 6 months ago

evgeniusb commented 1 year ago

@GregEremeev GregEremeev Использую Python 3.11.1. Как воспроизвести: C:\python_projects\rosreestr>venv\Scripts\activate (venv) C:\python_projects\rosreestr>pip install rosreestr-api

from rosreestr_api.clients import PKKRosreestrAPIClient api_client = PKKRosreestrAPIClient()

api_client.get_parcel_by_coordinates(lat=55.542, long=37.483)

evgeniusb commented 1 year ago

полный текст ошибки: (venv) C:\python_projects\rosreestr>python test.py ERROR:root:GET https://pkk.rosreestr.ru/api/features/1?text=55.542%2037.483&limit=11&tolerance=2 Traceback (most recent call last): File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen httplib_response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 381, in _make_request self._validate_conn(conn) File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 978, in _validate_conn conn.connect() File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connection.py", line 362, in connect self.sock = ssl_wrap_socket( ^^^^^^^^^^^^^^^^ File "c:\pythonprojects\rosreestr\venv\Lib\site-packages\urllib3\util\ssl.py", line 386, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\python\Lib\ssl.py", line 517, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\python\Lib\ssl.py", line 1075, in _create self.do_handshake() File "C:\python\Lib\ssl.py", line 1346, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\adapters.py", line 439, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 726, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\util\retry.py", line 446, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='pkk.rosreestr.ru', port=443): Max retries exceeded with url: /api/features/1?text=55.542%2037.483&limit=11&tolerance=2 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:\python_projects\rosreestr\venv\Lib\site-packages\rosreestr_api\clients.py", line 88, in _make_request response = session.send(prepared_request, timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\sessions.py", line 646, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='pkk.rosreestr.ru', port=443): Max retries exceeded with url: /api/features/1?text=55.542%2037.483&limit=11&tolerance=2 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)'))) Traceback (most recent call last): File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen httplib_response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 381, in _make_request self._validate_conn(conn) File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 978, in _validate_conn conn.connect() File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connection.py", line 362, in connect self.sock = ssl_wrap_socket( ^^^^^^^^^^^^^^^^ File "c:\pythonprojects\rosreestr\venv\Lib\site-packages\urllib3\util\ssl.py", line 386, in ssl_wrap_socket return context.wrap_socket(sock, server_hostname=server_hostname) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\python\Lib\ssl.py", line 517, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\python\Lib\ssl.py", line 1075, in _create self.do_handshake() File "C:\python\Lib\ssl.py", line 1346, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\adapters.py", line 439, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\connectionpool.py", line 726, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\urllib3\util\retry.py", line 446, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='pkk.rosreestr.ru', port=443): Max retries exceeded with url: /api/features/1?text=55.542%2037.483&limit=11&tolerance=2 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\python_projects\rosreestr\test.py", line 11, in api_client.get_parcel_by_coordinates(lat=55.542, long=37.483) File "c:\python_projects\rosreestr\venv\Lib\site-packages\rosreestr_api\clients.py", line 304, in get_parcel_by_coordinates return self._http_client.get(url).json() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\rosreestr_api\clients.py", line 123, in get return self._make_request(self.GET_HTTP_METHOD, url_with_query_params, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\rosreestr_api\clients.py", line 88, in _make_request response = session.send(prepared_request, timeout=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\sessions.py", line 646, in send r = adapter.send(request, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\python_projects\rosreestr\venv\Lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='pkk.rosreestr.ru', port=443): Max retries exceeded with url: /api/features/1?text=55.542%2037.483&limit=11&tolerance=2 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:992)')))

Sergei-Moshkin commented 7 months ago

Добрый день! Аналогичная ошибка. Установка сертификата https://www.gosuslugi.ru/crt не помогла(

agapovme commented 6 months ago

Всем привет!

Помимо установки сертификатов в систему, нужно, чтобы приложение тоже его "видело". Перейди на сайт https://www.gosuslugi.ru/crt. В разделе для линукс скачай оба сертификата. Открой их в блокноте скопируй текст (пример для виртуального окружения python 3.11) в конец файла venv/lib/python3.11/site-packages/certifi/cacert.pem (он тоже в текстовом редакторе открывается) и сохрани - и все работает

-----BEGIN CERTIFICATE----- MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD 4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9 G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+ /3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV 4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq 391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4= -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3 S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN 3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+ qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ 2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1 L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9 cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33 Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU= -----END CERTIFICATE-----

GregEremeev commented 6 months ago

Выпущена новая версия rosreestr_api==1.0.0 Обновитесь.

Sergei-Moshkin commented 6 months ago

Всем привет!

Помимо установки сертификатов в систему, нужно, чтобы приложение тоже его "видело". Перейди на сайт https://www.gosuslugi.ru/crt. В разделе для линукс скачай оба сертификата. Открой их в блокноте скопируй текст (пример для виртуального окружения python 3.11) в конец файла venv/lib/python3.11/site-packages/certifi/cacert.pem (он тоже в текстовом редакторе открывается) и сохрани - и все работает

Спасибо огромное. Ваш способ работает!

GregEremeev commented 6 months ago

Всем привет! Помимо установки сертификатов в систему, нужно, чтобы приложение тоже его "видело". Перейди на сайт https://www.gosuslugi.ru/crt. В разделе для линукс скачай оба сертификата. Открой их в блокноте скопируй текст (пример для виртуального окружения python 3.11) в конец файла venv/lib/python3.11/site-packages/certifi/cacert.pem (он тоже в текстовом редакторе открывается) и сохрани - и все работает

Спасибо огромное. Ваш способ работает!

Используйте новую версию, с ней всё работает без костылей.

GregEremeev commented 6 months ago

Закрыто, тк исправлено в версии 1.0.0