Ошибка исключения ошибки отладки

Мне не удалось перейти к URL-адресу саржи, и я не смог найти способ отладить проблему дальше. Я включил уровни отладки в twill для "http", "equ-refresh" и "команды", но до сих пор twill не дает никаких подробностей об ошибке. Вот вывод из twill-sh:

    $ twill-sh

     -= Welcome to twill! =-

    current page:  *empty page*
    >> debug equiv-refresh 1
    DEBUG: setting equiv-refresh debugging to level 1
    current page:  *empty page*
    >> debug http 1
    DEBUG: setting http debugging to level 1
    current page:  *empty page*
    >> debug commands 1
    DEBUG: setting commands debugging to level 1
    current page:  *empty page*
    >> go https://auth.nbnco.net.au/okta/login

    ERROR: cannot go to 'https://auth.nbnco.net.au/okta/login'

    current page:  *empty page*

А вот и вывод из скрипта Python:

    $ ./test.py
    Traceback (most recent call last):
      File "./test.py", line 13, in <module>
        go("https://auth.nbnco.net.au/okta/login")
      File "/usr/lib/python2.7/site-packages/twill/commands.py", line 109, in go
        browser.go(url)
      File "/usr/lib/python2.7/site-packages/twill/browser.py", line 91, in go
        raise TwillException("cannot go to '%s'" % (url,))
    twill.errors.TwillException: cannot go to 'https://auth.nbnco.net.au/okta/login'

1 ответ

Угадайте: Twill не будет загружать страницу, потому что при проверке SSL-сертификата страницы возникла проблема.

Попытка получить страницу с помощью urllib2.urlopen завершается с ошибкой:

>>> urllib2.urlopen('https://auth.nbnco.net.au/okta/login')
Traceback (most recent call last):
...                                                                                                       
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)>   

Извлечение страницы с помощью curl дает такой вывод:

$  curl https://auth.nbnco.net.au/okta/login > /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Страница загружается без ошибок для меня в Firefox и Chromium, поэтому сертификат обрабатывается сертификатами браузеров по-разному.

Сертификат SSL для сайтов выдается Symantec. Вполне возможно, что такое поведение связано с проблемами с выдачей сертификатов Symantec в прошлом, из-за которых Chrome и Mozilla объявили, что они не будут доверять SSL-сертификатам Symantec в 2018 году.

Я не думаю, что в Twill можно что-то сделать, чтобы обойти эту проблему.

Другие вопросы по тегам