2013-07-09 3 views
4

Я пытаюсь диагностировать эту ошибку:Содержит ли buildout/easy_install/setup_tools сертификаты SSL?

Getting distribution for 'zc.buildout<2dev'. 
Got zc.buildout 1.7.1. 
Generated script '/opt/mytardis/releases/a549cd05272afe8f16c2fe5efe8158490acbde82/bin/buildout'. 
Download error on http://pypi.python.org/simple/buildout-versions/: [Errno 104] Connection reset by peer -- Some packages may not be found! 
Couldn't find index page for 'buildout-versions' (maybe misspelled?) 
Download error on http://pypi.python.org/simple/: [Errno 104] Connection reset by peer -- Some packages may not be found! 
Getting distribution for 'buildout-versions'. 
STDERR: /usr/lib64/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'src_root' 
    warnings.warn(msg) 
While: 
    Installing. 
    Loading extensions. 
    Getting distribution for 'buildout-versions'. 
Error: Couldn't find a distribution for 'buildout-versions'. 

Это происходит глубоко внутри стека установки Buildout Chef +. Одна вещь, которую я обнаружил, что если я пытаюсь получить доступ к пакету Водоохладители-версии непосредственно:

$ wget https://pypi.python.org/packages/source/b/buildout-versions/buildout-versions-1.7.tar.gz#md5=731ecc0c9029f45826fa9f31d44e311d 
--2013-07-09 12:50:18-- https://pypi.python.org/packages/source/b/buildout-versions/buildout-versions-1.7.tar.gz 
Resolving proxy.redacted.com... 123.45.67.8 
Connecting to proxy.redacted.com|123.45.67.8|:8080... connected. 
ERROR: certificate common name “*.a.ssl.fastly.net” doesn’t match requested host name “pypi.python.org”. 
To connect to pypi.python.org insecurely, use ‘--no-check-certificate’. 

я могу получить доступ к файлу штрафа от моего рабочего стола. Поэтому я подозреваю прокси (предоставляемый университетом, и этот сервер должен использовать его для доступа в Интернет). Он установлен с https_proxy=....

Является ли это вероятной причиной сбоя сборки? Все вокруг?

+0

Можете ли вы получить доступ к http: // pypi.python.org/simple/buildout-versions'? Используемый вами сборщик * не * пытается использовать HTTPS вообще. –

+0

Хм, это усложняется. Переход на этот сайт в браузере перенаправляется на https: //. Переход туда в Lynx с сайта дает предупреждения SSL. И самое смущающее, wget на другом сервере, использующем тот же прокси, работает просто отлично. –

ответ

11

Ваша версия wget слишком стар.

wget начал поддерживать SNI (Server Name Indication) только с версии 1.14 и что для расширения TLS необходимо предоставить правильный сертификат на pypi.python.org.

+0

Спасибо за указатель на SNI! –

4

Да, zc.buildout и easy_install оба используют urllib2 для получения HTTPS ресурсов, which does not verify SSL certificates:

Warning: HTTPS requests do not do any verification of the server’s certificate.

Ваш wget инструмент делает проверить сертификаты, но ваши местные власти сертификаты сертификата являются неполными, по-видимому, см. SSL certificate rejected trying to access GitHub over HTTPS behind firewall для получения инструкций по их обновлению.

Что касается вашей первоначальной ошибки, похоже, ваш прокси-сервер брандмауэра выполняет сброс сверстников.

Согласно PEP 476, Python 2.7.9 средства правовой защиты в этой ситуации. Начиная с этой версии, urllib2 будет проверять SSL-сертификаты по умолчанию.

+1

Какой бит, в частности, есть «инструкции по их обновлению»? Исправлено 'yum update openssl' и' yum install ca-certificates' (возможно, неправильное имя пакета), но ничего хорошего. –

+0

Пип больше не использует urllib2; он теперь использует запросы. –

+0

@PiotrDobrogost: Ах, действительно, с 1,5-го года в изменении, сделанном в августе 2013 года, я вижу. Я удалил «pip» из списка. –

0

вы можете попробовать:

wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea --no-check-certificate 
+0

Серьезно, говоря людям не проверять сертификаты, граничит с преступником ... –

+0

@ BrunoRohée Надеюсь, авторы wget и других сетевых инструментов не согласны с вами :) –

+0

Есть разница между продажей оружия и сообщением кому-либо совершить самоубийство, предложение -no-check-certificate похоже на продажу оружия, рассказывающего кому-то использовать его, загружая пакет из отличного Интернета, более сродни тому, чтобы сказать ему играть в русскую рулетку ... –

1

Поскольку Python 2.7.9 (выпущен)/3.4.3 (выпущен в ближайшее время), сертификаты проверяются по умолчанию:

HTTPS certificate validation using the system's certificate store is now enabled by default. See PEP 476 for details.

https://www.python.org/downloads/release/python-279/