Как побороть The server name sent was not recognized (pycurl)?

Приветствую всех.
Наткнулся на непрятную странность. Скрипт на python вылетает с segmentation fault. В результате разбора пришел к выводу что происходит это на сайтах использующих SSL сертификат в котором не прописан их домен.
И вроде бы решение то очевидно, отключаем проверку и готово, но меня почему то это не спасло.
Скрипт падает с сообщением:
Process finished with exit code 139

Максимально сократил код:
import pycurl

c = pycurl.Curl()
c.setopt(c.URL, 'http://bulllat.ru/')
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.SSL_VERIFYPEER, 0)
c.setopt(pycurl.SSL_VERIFYHOST, 0)
c.perform()


Этот код возвращает:
pycurl.error: (51, 'gnutls_handshake() warning: The server name sent was not recognized')

URL привожу не случайно, не сочтите за рекламу. Просто не на каждом сайте с SSL скрипт спотыкается.
  • Вопрос задан
  • 3336 просмотров
Решения вопроса 1
mysticmirage
@mysticmirage
Добавьте перед c.perform():
c.setopt(pycurl.SSLVERSION, pycurl.SSLVERSION_SSLv3)

P.S.
Правильнее:
c.setopt(pycurl.URL, 'http://bulllat.ru/')
вместо:
c.setopt(c.URL, 'http://bulllat.ru/')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы