2017-05-15 1 views
3

Après tous les documents Microsoft prévoit son nouveau produit Azure MySQL, je continue à obtenir la même erreurConnexion SSL pour MySQL Azure échoué dans l'application Node.js

Error: 140736265921472:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:794

J'ai essayé sur un Linux conteneur docker au cas où j'avais un problème sur macOS.

Exemple de code, j'ai essayé isolé de mon application pour être sûr:

var mysql = require('mysql2'); 

var conn = mysql.createConnection({ 
    host: "mydbname.mysql.database.azure.com", 
    user: "[email protected]", 
    password: 'password', 
    database: 'dbname', 
    port: 3306, 
    ssl: { 
    ca: fs.readFileSync('./BaltimoreCyberTrustRoot.crt'), 
    } 
}); 

Documentation I suivi:

https://docs.microsoft.com/en-us/azure/mysql/howto-configure-ssl https://docs.microsoft.com/en-us/azure/mysql/howto-connection-string

J'ai essayé les deux mysql et mysql2 pilotes de noeud sans succès. Quelqu'un a-t-il résolu cela?

+0

Avez-vous installé mysql2? npm install --save mysql2 – lloiacono

+1

Oui, j'ai mysql2 installé. – sjdweb

+0

J'ai le même problème sur Windows. Noeud v6.10.3 –

Répondre

4

Merci d'avoir signalé le problème. Le bug avait été exposé dans nos tests internes et corrigé. Nous allons déployer le correctif ces quelques jours, et nous vous tiendrons au courant. En attendant, veuillez utiliser le mode non-ssl pour atténuer si vous le pouvez. Merci!

----- ----- Modifier

Salut, le correctif a été déployé. S'il vous plaît essayez! Merci.

+0

Par curiosité, quel est le correctif implémenté? Les problèmes discutés sur github pour mysql lib indiquent qu'il y a un problème avec le commutateur d'authentification (ce qui signifie que le nœud ne peut pas se connecter avec ou sans SSL). Le PR pour réparer le commutateur ne réglera pas les problèmes SSL. Était-ce parce que le certificat émis n'était pas configuré pour le domaine de base de données mysql? Parce que j'ai remarqué ça aussi. – Dave

+0

Salut Dave, il y avait deux problèmes ici. L'un d'entre eux était un client de nœud ne supportant pas le protocole de commutation d'authentification; l'autre était notre service a eu une régression de parler au client de noeud sur la connexion SSL. La régression a été causée par l'indicateur de capacité n'a pas été reconnu. Merci de votre intérêt! – TwoCode

+0

Salut, avec le même code, je reçois maintenant 'Erreur: impossible d'obtenir le certificat de l'émetteur local' avec les deux derniers pilotes mysql et mysql2? – sjdweb