Mysql
 sql >> Base de données >  >> RDS >> Mysql

Obtention de Mysql2::Error (erreur de connexion SSL :ASN :mauvaise autre confirmation de signature) sur l'application Heroku avec AWS RDS

Pour moi, cela avait à voir avec la rotation des certificats SSL RDS qui s'est produite le 3 avril 2015.

Cependant, dans mon cas, l'utilisation du certificat racine n'a pas fonctionné et j'ai également dû utiliser un certificat intermédiaire pour ma région. Détails :

  1. Accédez à la console AWS rds et redémarrez votre instance RDS.

  2. Téléchargez le nouveau certificat racine https://s3.amazonaws. com/rds-downloads/rds-ca-2015-root.pem . Placez-le dans le répertoire de configuration de votre application.

  3. Téléchargez le certificat intermédiaire pour votre région de base de donnéesici . J'ai dû utiliser celui de l'est des États-Unis, mais vous devrez choisir celui de votre région.

  4. C'est l'étape clé. Vous devez combiner le certificat intermédiaire et le certificat racine dans un seul fichier afin que le certificat intermédiaire soit au-dessus du certificat racine, formant une chaîne de certificats. Ouvrez le certificat intermédiaire à l'aide d'un éditeur de texte, copiez son contenu et collez-le dans config/rds-ca-2015-root.pem, en haut, au-dessus du certificat racine. Donc, une fois que vous avez terminé, config/rds-ca-2015-root.pem devrait être le certificat intermédiaire suivi du certificat racine, le tout dans ce fichier.

  5. Obtenez l'URL de votre base de données actuelle

heroku config 

puis recherchez la propriété DATABASE_URL

  1. Mettez à jour l'URL de votre base de données pour utiliser le nouveau fichier de certificat. Tout ce que vous devriez avoir à changer est le nom du certificat (puisqu'il s'appelle désormais rds-ca-2015-root.pem)
heroku 
config:add DATABASE_URL="mysql2://DB_NAME:[email protected]_URL/DB_NAME?sslca=config/rds-ca-2015-root.pem"
  1. Valider les modifications et redéployer sur Heroku.