Это буквально означает, что место, где работает ваш код, не доверяет сертификату, установленному на удаленном сайте.
Хотя код, который вы разместили, обходит все проверки подлинности, это не очень хорошая практика, так как SSLдает вам некоторую уверенность в том, что сайт, с которым вы разговариваете, является легитимным, и никто не проводит атаку типа «человек посередине», например, для перехвата ваших данных.
Номер шага диагностикиОдним из них является посещение этой страницы в вашем браузере и просмотр сертификата.
Убедитесь, что ваш браузер считает, что это безопасно - он скажет вам, почему это не так, если нет.Распространенные причины:
- Просрочено (отметьте Действителен от .. до )
- Несоответствующее доменное имя (отметьте оба Выдано и Альтернативное имя субъекта )
- Выдано ненадежным органом
В случае (1) и (2) это действительнопроблема сервера, с которой должен справиться удаленный сервис.
С учетом (2) иногда люди выдают только сертификат на "www.example.com"
, а не "example.com"
(или "*.example.com"
, который не включает "example.com"
), поэтому простой способ обойти этосайт с соответствующим доменным именем.
В случае (3) распространенной причиной этого является самозаверяющий сертификат.Это как ручаться за себя, и, очевидно, не очень заслуживает доверия.Также возможно, что вы просто не доверяете действительному CA (Certificate Authority), который подписал сертификат.Есть несколько способов справиться с этим:
- Получите ли веб-сервис новый сертификат от доверенного CA ( LetsEncrypt является хорошим выбором в наши дни, и является как автоматизированным, так и бесплатным)
- Обновите свои корни доверия (например, если ваша система не имеет последних обновлений): Win 7/10 , Windows Server
- Импортируйте сертификат корневого ЦС (см. Вкладку Путь к сертификату ), который подписал этот сертификат в вашей системе, и пометьте его как доверенный.