Код ниже работает в Windows, но на Ubuntu Я получаю ошибку (35, 'ошибка чтения ключа X.509 или сертификата файл'). Похоже, pycurl не может найти путь к файлу сертификата:pycurl.error: (35, 'ошибка чтения X.509 ключ или файл сертификата')
c.setopt(c.URL, self.INTERFACE_URL)
c.setopt(c.POST, True)
c.setopt(c.HTTPHEADER, ["Content-Type: text/xml"])
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERPWD, self.AUTHORIZATION_PASS)
c.setopt(c.POSTFIELDS, body)
c.setopt(c.SSL_VERIFYPEER, True)
c.setopt(c.SSLVERSION, 3)
c.setopt(c.CAINFO, "geotrust.pem");
c.setopt(c.VERBOSE, True)
c.setopt(c.SSL_VERIFYHOST, 2)
c.setopt(c.SSLCERT, "WS*******._.1.pem")
c.setopt(c.SSLKEY, "WS*******._.1.key")
c.setopt(c.SSLKEYPASSWD, "**********")
c.setopt(c.WRITEFUNCTION, response.write)
c.perform()
c.close()
я нашел один из возможных решений, которые не помогло:
«Pycurl кажется установить CAINFO и CAPATH к их значениям по умолчанию одновременно, что может привести к некоторой путанице. Я настраиваю своего потребителя на использование CAPATH и должен был вызвать c.unsetopt (pycurl.CAINFO), чтобы заставить работу работать должным образом. Я забыл, что столкнулся с этой трудностью до тех пор, пока вы отправили это электронное письмо. Другая возможность заключается в том, что pycurl не может найти сертификат, который вы предоставили в аргументе CAINFO. Вы можете попробовать поставить путь в качестве средства для CAINFO ».
Любые идеи?