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?
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