Как обновить сертификат SSL в Python?
Я запускаю python 3.9.1. У меня есть несколько действий администратора Django, которые создают, а затем загружают некоторые PDF-файлы. При запуске этого на моем локальном компьютере (Windows 10) я недавно начал получать следующее сообщение об ошибке:SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: срок действия сертификата истек (_ssl.c:1123)
Есть идеи, как я могу с этим справиться? Приложение Django отлично работает на сервере, проблема только на моем локальном хосте.
1 ответ
В моем случае я взаимодействовал с API-интерфейсами устройств IoT (Интернет вещей), и у меня был сертификат LetsEncrypt, срок действия которого истек. Я скачал новый сертификат LetsEncrypt по адресу:
Дополнительные пояснения:
Моя ошибка произошла на клиенте 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/https://valid-isrgrootx1.letsencrypt.org/ , и ваше хранилище сертификатов обновится автоматически.