2015-11-26 17 views
6

Sto provando a connettermi a un database MySQL usando python ma sto ottenendo uno strano errore. È aggravato dal fatto che posso usare gli stessi valori di connessione dal comando console mysql e che si connette senza problemi.pymysql non può connettersi con SSL

Ecco il codice esatto che sto usando:

importazione pymysql da controlli all'importazione AgentCheck

class DelayedJobCheck(AgentCheck): 
    def check(self, instance): 
     self.log.info("testing connection") 
     self.log.info(instance) 

     connection = pymysql.connect(**instance) 

     cur = cnx.cursor(buffered=True) 
     cur.execute("SHOW STATUS LIKE 'Ssl_cipher'") 
     print(cur.fetchone()) 
     cur.close() 
     cnx.close() 

     self.gauge('hello.world', 1) 

Questo è l'errore che sto ottenendo:

 
Traceback (most recent call last): 
    File "/opt/datadog-agent/agent/checks/__init__.py", line 661, in run 
    self.check(copy.deepcopy(instance)) 
    File "/opt/datadog-agent/agent/checks.d/delayed_job.py", line 10, in check 
    connection = pymysql.connect(**instance) 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/__init__.py", line 88, in Connect 
    return Connection(*args, **kwargs) 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/connections.py", line 644, in __init__ 
    self._connect() 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/connections.py", line 869, in _connect 
    raise exc 
OperationalError: (2003, u"Can't connect to MySQL server on '192.168.199.86' ([SSL: SSL_NEGATIVE_LENGTH] dh key too small (_ssl.c:590))") 

Sono in esecuzione questo codice su una scatola Ubuntu e inizialmente penso che potrebbe essere perché la CA SSL è un certificato auto-generato. Quindi ho seguito i passaggi here ma non ha fatto alcuna differenza. Inoltre ho verificato che il processo che sta eseguendo questo codice ha pieno accesso ai file cert

Qualche idea che altro potrebbe causare questo?

+0

Sembra che questo è un aggiornamento di sicurezza per l'ultimo pacchetto OpenSSL in linux. Esegui il downgrade dei pacchetti OpenSSL alla versione precedente eseguendo il comando seguente: sudo apt-get install libssl-dev = 1.0.1-4ubuntu3 libssl-doc = 1.0.1-4ubuntu3 libssl1.0.0 = 1.0.1-4ubuntu3 openssl = 1.0.1-4ubuntu3 Se ciò non funziona per te, ecco una serie di passaggi più lunghi da provare. https://groups.google.com/d/msg/security-onion/E7HdGGUuq6c/gqNBbT5TLw0J – Shahram

risposta

Problemi correlati