seppius-xbmc-repo / ru

seppius-xbmc-repo (Fork)
GNU General Public License v2.0
178 stars 145 forks source link

plugin.video.shikimori.org SSL: CERTIFICATE_VERIFY_FAILED #47

Closed iG8R closed 4 years ago

iG8R commented 7 years ago

C недавних пор плагин стал выдавать ошибку: URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

Починилось путем отключения проверки сертификата:

def GetHTML(url):
    certoff = ssl.create_default_context()
    certoff.check_hostname = False
    certoff.verify_mode = ssl.CERT_NONE
    cookieJar = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPSHandler(context=certoff),  urllib2.HTTPCookieProcessor(cookieJar))
    connection = opener.open(url)
    html = connection.read()
    connection.close()
    return html

Но как-то это не совсем правильно. Может быть у кого-то будут лучше идеи, каким образом сделать так, чтобы и плагин работал, и проверка сертификата проходила успешно?

sshnaidm commented 7 years ago

Возможно проблема в устаревших(?) сертификатах на девайсе где бежит скрипт. На сайте все нормально и у меня работает валидация без проблем.

iG8R commented 7 years ago

Вот все сертификаты, которые имеются на той машине:

cert_2017-08-10_211937 cert_2017-08-10_212004 cert_2017-08-10_211902 cert_2017-08-10_211841 cert_2017-08-10_211802

Причем, они абсолютно те же, что и были до возникновения проблемы с плагином, хотя даты устаревших сертификатов никак не соотносятся с недавними датами.

vlmaksime commented 7 years ago

@iG8R, грешу на сертификат, идущий с модулем urllib2. И еще Вы не указали версию KODI.

iG8R commented 7 years ago

Cпасибо, что помогаете с разрешением данной ситуации. Данная проблема возникла примерно неделю назад, до этого работало все стабильно. Kodi v17.3 "Krypton" (32bit), затем устновил поверх него Kodi v18 "Leia" nightly (KodiSetup-20170806-1f395332e3-master-x86.exe), но это ничем не помогло, потому откатился обратно на 17.3. Подскажите, где лежит данный сертификат, т.к. самостоятельно я его что-то не нашел - искал везде по ключевым словам "cert" и "pem", в диретокрии и поддиректориях "Kodi\system\python\" тоже ничего соотвествующего нет. Нашел следующую тему https://forum.kodi.tv/showthread.php?tid=282604 вроде бы должны были починить данный баг, но он опять как-то вылез?

vlmaksime commented 7 years ago

за работу с ssl отвечает модуль "system\python\Lib\ssl.py", который обращается к модулю "\system\python\DLLs_ssl.pyd". Может сертификат вшит в последнем... У Вас на устройстве дата и время правильно настроено?

iG8R commented 7 years ago

Хм, странно, но DLLs_ssl.pyd я вообще у себя не нашел. Посмотрел на дерево файлов каталога Kodi - в system оно вообще не изменялось с момента установки Kodi, т.е. этого файла вообще никогда у меня и не было, хотя до этого работало все нормально. Дату я проверил в первую очередь - она синхронизируется каждые 15 минут.