Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtendo Mysql2::Error (erro de conexão SSL:ASN:outra confirmação de assinatura ruim) no aplicativo Heroku com AWS RDS


Para mim, isso tinha a ver com a Rotação do Certificado SSL RDS que aconteceu em 3 de abril de 2015.

No entanto, no meu caso, apenas usar o certificado raiz não funcionou, e também tive que usar um certificado intermediário para minha região. Detalhes:

  1. Acesse o console do AWS rds e reinicie sua instância do RDS.

  2. Faça o download do novo certificado raiz https://s3.amazonaws. com/rds-downloads/rds-ca-2015-root.pem . Coloque-o no diretório de configuração do seu aplicativo.

  3. Faça download do certificado intermediário para sua região de banco de dadosaqui . Eu tive que usar o leste dos EUA, mas você terá que escolher o da sua região.

  4. Este é o passo chave. Você precisa combinar o certificado intermediário e o certificado raiz em um arquivo para que o certificado intermediário fique acima do certificado raiz, formando uma cadeia de certificados. Abra o certificado intermediário usando um editor de texto, copie seu conteúdo e cole-o em config/rds-ca-2015-root.pem, na parte superior, acima do certificado raiz. Então, depois que você terminar, config/rds-ca-2015-root.pem deve ser o certificado intermediário seguido pelo certificado raiz, tudo neste arquivo.

  5. Obtenha o URL do seu banco de dados atual
heroku config 

e, em seguida, procure a propriedade DATABASE_URL
  1. Atualize a URL do seu banco de dados para usar o novo arquivo de certificado. Tudo o que você deve alterar é o nome do certificado (já que agora é chamadords-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 as alterações e reimplante no Heroku.