sql >> Base de Datos >  >> RDS >> Mysql

Obtener Mysql2::Error (error de conexión SSL:ASN:confirmación de otra firma incorrecta) en la aplicación Heroku con AWS RDS

Para mí, esto tuvo que ver con la rotación de certificados RDS SSL que ocurrió el 3 de abril de 2015.

Sin embargo, en mi caso, usar solo el certificado raíz no funcionó y también tuve que usar un certificado intermedio para mi región. Detalles:

  1. Vaya a la consola de AWS rds y reinicie su instancia de RDS.

  2. Descargue el nuevo certificado raíz https://s3.amazonaws. com/rds-downloads/rds-ca-2015-root.pem . Póngalo en el directorio de configuración de su aplicación.

  3. Descargue el certificado intermedio para la región de su base de datos aquí . Tuve que usar el del este de EE. UU., pero tendrás que elegir el de tu región.

  4. Este es el paso clave. Debe combinar el certificado intermedio y el certificado raíz en un archivo para que el certificado intermedio esté por encima del certificado raíz, formando una cadena de certificados. Abra el certificado intermedio con un editor de texto, copie su contenido y péguelo en config/rds-ca-2015-root.pem, en la parte superior, encima del certificado raíz. Entonces, una vez que haya terminado, config/rds-ca-2015-root.pem debe ser el certificado intermedio seguido del certificado raíz, todo en este archivo.

  5. Obtenga la URL de su base de datos actual

heroku config 

y luego busque la propiedad DATABASE_URL

  1. Actualice la URL de su base de datos para usar el nuevo archivo de certificado. Todo lo que debe cambiar es el nombre del certificado (ya que ahora se llama 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. Confirme los cambios y vuelva a implementar en Heroku.