2016-02-18 15 views
6

Sto cercando di eseguire la CLI AWS su un Mac. Sto cercando di leggere/scrivere lo stato dell'ombra usando l'API iot-data. Il comando funziona correttamente, ma ogni volta genera un errore OpenSSL/TLS.Come risolvere l'errore OpenSSL con l'API IoT CLI AWS?

$ 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 

Ecco la versione di AWS.

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

Come potete vedere, ho usato Homebrew per installare tutti. OpenSSL e Python sono collegati correttamente. Non riesco a trovare nulla sul mio sistema che faccia riferimento a OpenSSL 0.9.8zg e Python carica la versione OpenSSL corretta.

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

V'è qualche indicazione che altri fattori possono essere innescare l'errore: https://forums.aws.amazon.com/thread.jspa?messageID=690051#690051

Tuttavia, dato che posso effettivamente recuperare stato ombra l'errore deve essere dovuto a qualcosa d'altro.

Qualche idea su cosa potrebbe causare questo errore?

AGGIORNATO: 2016/09/15 Compreso informazioni 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

Quale interprete Python stai usando? Per esempio. head $ (che aws) – vielmetti

risposta

1

Dal momento che OS X ha il suo pitone e OpenSSL lib, sembra che awscli fa riferimento loro invece dei vostri versioni prodotte. Suppongo che (a) i sym link di home-brew non siano realmente corretti o (b) il python home-brew non sia legato alla versione di openssl prodotta (quindi l'awscli raccoglie il sistema openssl lib, ma quando si fa manualmente importa la lib, ottieni la versione più aggiornata).

avrei aggiorno OpenSSL, forzare i suoi legami e re-installare python in questo modo:

brew update 
brew install openssl 
brew link openssl --force 

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

Non riesco a ricordare se ho provato questo così sto andando attraverso i passaggi. In questo momento, sto ricevendo l'errore: "Attenzione: Rifiutarsi di collegare: openssl Il collegamento di opensegl keg-only significa che potresti finire per linkare contro l'insicuro ..." Sembra che potrei aver bisogno di definire alcune variabili https: // github.com/dotnet/cli/issues/3964 – jedatu

+0

hmm, questo è imbarazzante. Hai preso in considerazione l'idea di punting - installando l'awscli con pip? – gregory