#ssl #ssl-certificate #odoo #xml-rpc #erp
Вопрос:
Я написал этот сценарий около 4 месяцев назад, все работало нормально. Но когда я вчера вернулся к этому коду, я получил следующее исключение:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1108)
это происходит, когда я запускаю следующее:
client = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(odoo_server), allow_none=True)
в чем может быть проблема?
Комментарии:
1. Является ли сервер , к которому вы подключаетесь, сертификатом LetsEncrypt с цепочкой совместимости по умолчанию, включающей корневой центр сертификации DST X3, срок действия которого истек 30 сентября (см. Множество других Qs и миллионы блогов), и использует ли ваш python OpenSSL ниже версии 1.1.0? Если так, то в этом-то и проблема.
2. @dave_thompson_085 Я должен спросить старшего по такому случаю. На самом деле я не знаю. но когда я это сделаю, я скажу тебе. спасибо
Ответ №1:
Это решение может помочь вам в вашей ситуации.
import ssl
xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(odoo_server), allow_none=True,verbose=False, use_datetime=True,context=ssl._create_unverified_context())
Комментарии:
1. Я попробовал, и это вызвало у меня еще одну ошибку. Кроме того, я не думаю, что это хорошее решение для моего случая, так как оно работало нормально
2. Итак, поговорив с моим старшим, он согласился с этим решением. Плюс ошибка, появившаяся после использования этого решения, также была исправлена (учетные данные были неверными). Поэтому я принял этот ответ. Спасибо тебе.
Ответ №2:
какое значение в odoo_server, попробуйте без http или https. попробуйте использовать свой ip-адрес или просто доменное имя
Комментарии:
1. без http/https или с ip: я получаю «неподдерживаемый протокол XML-RPC»