2016-02-18 2 views
6

Я пытаюсь запустить AWS CLI на Mac. Я пытаюсь читать/записывать состояние тени с помощью iot-data API. Команда работает корректно, но каждый раз она генерирует ошибку OpenSSL/TLS.Как исправить ошибку OpenSSL с API AWI CLI IoT?

$ aws iot-data get-thing-shadow --thing-name "my-thing-20160209" my-thing-20160209.json 

/usr/local/Cellar/awscli/1.10.1/libexec/vendor/lib/python2.7/site-packages/botocore/handlers.py:574: UnsupportedTLSVersionWarning: Currently installed openssl version: OpenSSL 0.9.8zg 14 July 2015 does not support TLS 1.2, which is required for use of iot-data. Please use python installed with openssl version 1.0.1 or higher. 
    UnsupportedTLSVersionWarning 

Настоящая версия AWS.

aws-cli/1.10.1 Python/2.7.10 Darwin/14.5.0 botocore/1.3.23

Как вы можете видеть, я Homebrew установить все. OpenSSL и Python связаны правильно. Я ничего не могу найти в своей системе, ссылаясь на OpenSSL 0.9.8zg, а Python загружает правильную версию OpenSSL.

$ python -c 'import ssl; print ssl.OPENSSL_VERSION' 
OpenSSL 1.0.2f 28 Jan 2016 

Существует несколько признаков того, что другие факторы могут быть вызывая ошибку: https://forums.aws.amazon.com/thread.jspa?messageID=690051#690051

Однако, так как я могу реально получить теневое состояние ошибки должна быть связана с чем-то другим.

Любые идеи, что может вызвать эту ошибку?

ОБНОВЛЕНО: 2016-09-15 Включая информацию Python

$ head $(which aws) 
#!/bin/bash 
PYTHONPATH="/usr/local/Cellar/awscli/1.10.51/libexec/lib/python2.7/site-packages:/usr/local/Cellar/awscli/1.10.51/libexec/vendor/lib/python2.7/site-packages" exec "/usr/local/Cellar/awscli/1.10.51/libexec/bin/aws" "[email protected]" 
+0

Какой интерпретатор Python вы используете? Например. head $ (который aws) – vielmetti

ответ

1

Поскольку OS X имеет свой собственный питон и OpenSSL LIB, оказывается, что awscli ссылается их вместо ваших заваривают версий. Я бы предположил, что (а) символьные ссылки на дому действительно неправильны или (b) питоны домашнего пива не привязаны к заваренной версии openssl (поэтому awscli выбирает систему openssl lib, но когда вы вручную импортируйте lib, вы получите более актуальную версию).

Я бы обновить OpenSSL, заставить его ссылку и повторно установить питон так:

brew update 
brew install openssl 
brew link openssl --force 

brew install python --with-brewed-openssl 
+0

Я не могу вспомнить, пробовал ли я это, поэтому я просматриваю шаги. Прямо сейчас, я получаю сообщение об ошибке: «Предупреждение: отказ от ссылки: openssl Ссылка на кег-только openssl означает, что вы можете связать себя с небезопасным ...» Похоже, мне может понадобиться определить некоторые переменные https: // github.com/dotnet/cli/issues/3964 – jedatu

+0

Хм, это неудобно. Рассматривали ли вы пение - установив awscli с пипсом? – gregory