Как обновить сертификат SSL в Python?
Я использую python 3.9.1 У меня есть несколько Django Admin Actions, которые создают и затем загружают некоторые PDF-файлы. При выполнении этих действий на моей локальной машине (Windows 10) я недавно начал получать следующее сообщение об ошибке: SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)
Есть идеи, как я могу с этим справиться? Приложение Django прекрасно работает на сервере, проблема только на моем локальном хосте.
В моем случае я взаимодействовал с API устройств IoT (Интернета вещей) и имел сертификат LetsEncrypt, срок действия которого истек. Я загрузил новый сертификат LetsEncrypt по адресу: https://valid-isrgrootx1.letsencrypt.org/
Дополнительные пояснения:
Моя ошибка возникла на клиенте Windows Python, запрашивающем информацию API с веб-сервера IoT. Я определил, срок действия сертификата какого клиента истек, просмотрев даты существующих сертификатов в Windows:
- Откройте Powershell от имени администратора, затем: Get-Childitem cert:\LocalMachine\root |format-list .
Просроченный сертификат принадлежал LetsEncrypt. Дополнительная информация о просроченном сертификате: https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/.
В моем случае срок действия корневого сертификата LetsEncrypt истек в конце сентября и был заменен на более новый сертификат. Чтобы использовать новый сертификат, посетите любую веб-страницу, использующую этот сертификат с вашего неработающего клиента . В случае с LetsEncrypt, посетите демонстрационную страницу их сертификата по адресу: https://valid-isrgrootx1.letsencrypt.org/, и ваше хранилище сертификатов обновится автоматически.