2015-11-26 20 views
6

Ich versuche mit Python eine Verbindung zu einer MySQL-Datenbank herzustellen, bekomme aber einen seltsamen Fehler. Es wird durch die Tatsache ergänzt, dass ich die gleichen Verbindungswerte vom Konsolenbefehl mysql verwenden kann und es ohne Probleme verbindet. Hierpymysql kann keine Verbindung mit SSL herstellen

ist der genaue Code Ich verwende:

Import pymysql von Kontrollen AgentCheck importieren

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) 

Dies ist der Fehler, ich erhalte:

 
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))") 

mir läuft Dieser Code auf einer Ubuntu-Box und ich dachte zunächst, dass es möglicherweise daran liegt, dass die SSL-CA ein selbst erstelltes Zertifikat ist. Also folgte ich den Schritten here Aber es machte keinen Unterschied. Außerdem habe ich überprüft, dass der Prozess, der diesen Code ausführt, vollen Zugriff auf die Cert-Dateien hat.

Irgendwelche Ideen, was sonst könnte dies verursachen?

+0

Sieht aus wie dies ein Sicherheitsupdate für neueste OpenSSL-Paket in Linux ist. Downgrade Ihre OpenSSL-Pakete auf die vorherige Version, indem Sie den folgenden Befehl ausführen: 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 Wenn das nicht für Sie funktioniert, hier ist eine längere Reihe von Schritten zu versuchen. https://groups.google.com/d/msg/security-onion/E7HdGGUuq6c/gqNBbT5TLw0J – Shahram

Antwort

Verwandte Themen