Сбой подключения Python к salesforce при проверке сертификата - PullRequest
0 голосов
/ 07 февраля 2019

Я получаю ошибки SSL при запуске кода Python с использованием simpleSalesforce.Я запускаю это на рабочем ноутбуке.Так что иду через рабочий прокси-сервер.Мне сказали, что прокси-сервер разрешает связь SSL.

Ошибка: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)

Я получил самозаверяющий сертификат от Salesforce.И поставили его в двух местах.Я не уверен, что предполагается использовать.

Руководствуясь командой "python -mrequests.certs", я помещаю самозаверяющий сертификат в выходной файл cacert.pem:

C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\runpy.py:125: RuntimeWarning: 'requests.certs' found in sys.modules after import of package 'requests', but prior to execution of 'requests.certs'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\site-packages\certifi\cacert.pem

И руководствуясь командой python -c "import ssl; print(ssl.get_default_verify_paths ()) "Я поместил самозаверяющий сертификат в выходной файл cert.pem.

Возможно, мне придется прочитать Python и openSSL и попытаться написать некоторый код на этом уровне, чтобы устранить проблему,Модуль python simple_salesforce не предоставляет мне достаточно информации для устранения неполадок.

Может кто-нибудь указать мне на некоторый простой код на python, который будет проблематично снимать конфигурацию ssl моих питонов.Код, который подтвердит, где мой питон ищет сертификаты.Код, который даст больше информации о том, почему рукопожатие не удалось.

Вот мой код:

from simple_salesforce import Salesforce

proxies = {
"http": "http://***.**.*.***:8080",
"https": "https://***.**.*.***:8080",
}

sf = Salesforce(password='**', username='**', security_token='**', proxies=proxies)

print ("Done building sf")

print ("Trying query")
query = 'SELECT * FROM Notice__c LIMIT 10'
result = sf.bulk.Notice__c.query(query)
print(result)

print ("End")
```

Here is the error.
=================
Done building sf
Trying query
Traceback (most recent call last):
  File "C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3\contrib\pyopenssl.py", line 453, in wrap_socket
    cnx.do_handshake()
  File "C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\site-packages\OpenSSL\SSL.py", line 1915, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\site-packages\OpenSSL\SSL.py", line 1647, in _raise_ssl_error
    _raise_current_error()
  File "C:\Users\steej1\AppData\Local\Programs\Python\Python37\lib\site-packages\OpenSSL\_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...