Alternar o certificado SSL/TLS
Em de 5 de março de 2020, os certificados CA-2015 do Amazon RDS expiraram. Se usar ou planeja usar Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) com verificação de certificado para se conectar às suas instâncias de banco de dados do RDS, você precisará de certificados CA-2019 do Amazon RDS, que são habilitados por padrão para novas instâncias de banco de dados. Se você não usa SSL/TLS com verificação de certificado no momento, é possível que ainda tenha certificados CA-2015 expirados e deverá atualizá-los para certificados CA-2019 se planeja usar SSL/TLS com verificação de certificado para se conectar aos bancos de dados do RDS.
Siga estas instruções para concluir as atualizações. Antes de atualizar as instâncias de banco de dados para usarem o novo certificado CA, atualize os clientes ou as aplicações que se conectam aos bancos de dados do RDS.
O Amazon RDS fornece novos certificados CA como uma prática recomendada de segurança da AWS. Para obter informações sobre os novos certificados e as regiões da AWS compatíveis, consulte Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.
O proxy do Amazon RDS e o Aurora Serverless usam certificados do AWS Certificate Manager (ACM). Se estiver usando o RDS Proxy, quando você rotacionar o certificado SSL/TLS, não será necessário atualizar as aplicações que usam conexões RDS Proxy. Para obter mais informações sobre como usar o TLS/SSL com o RDS Proxy, consulte Usar TLS/SSL com o RDS Proxy.
Se você estiver usando o Aurora Serverless, a rotação do certificado SSL/TLS não será necessária. Para obter mais informações sobre o uso do TLS/SSL com o Aurora Serverless, consulte Usar TLS/SSL com o Aurora Serverless v1.
Se estiver usando uma aplicação Go versão 1.15 com uma instância de banco de dados criada ou atualizada para o certificado rds-ca-2019
anterior a 28 de julho de 2020, você deve atualizar o certificado novamente. Atualize o certificado para rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1 de acordo com seu mecanismo. Execute o comando modify-db-instance
mostrado na seção da AWS CLI usando o novo identificador do certificado CA. Você pode encontrar as CAs que estão disponíveis para uma versão específica do mecanismo de banco de dados e do mecanismo de banco de dados usando o comando describe-db-engine-versions
.
Caso você tenha criado sua instância de banco de dados ou atualizado seu certificado após 28 de julho de 2020, nenhuma ação será necessária. Para obter mais informações, consulte Go GitHub issue #39568
Tópicos
Atualizar o certificado CA modificando sua instância de banco de dados
Conclua as etapas a seguir para atualizar o certificado CA.
Como atualizar o certificado CA modificando a instância de banco de dados
-
Baixe o novo certificado SSL/TLS conforme descrito em Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.
-
Atualize as aplicações para usarem o novo certificado SSL/TLS.
Os métodos para atualizar aplicações para novos certificados SSL/TLS dependem de suas aplicações específicas. Trabalhe com os desenvolvedores de aplicações para atualizar os certificados SSL/TLS para suas aplicações.
Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicações para cada mecanismo de banco de dados, consulte os seguintes tópicos:
Para conhecer um script de exemplo que atualiza um armazenamento confiável para um sistema operacional Linux, consulte Script de exemplo para importar certificados para o seu armazenamento confiável.
nota O pacote de certificados contém certificados tanto para a CA antiga como para a nova, portanto, é possível atualizar a aplicação de maneira segura e manter a conectividade durante o período de transição. Se você estiver usando o AWS Database Migration Service para migrar um banco de dados para de Banco de Dados cluster, recomendamos o uso do pacote de certificados para garantir a conectividade durante a migração.
-
Modifique a instância de banco de dados para alterar a CA de rds-ca-2015 para rds-ca-2019.
Importante Por padrão, essa operação reinicia a instância de banco de dados. Se você não desejar reiniciar sua instância de banco de dados durante essa operação, poderá usar o comando
modify-db-instance
da CLI e especificar a opção--no-certificate-rotation-restart
.Essa opção não alternará o certificado até a próxima vez que o banco de dados for reiniciado, seja para manutenção planejada ou não planejada. Essa opção só é recomendada se você não usar SSL/TLS.
Se você estiver enfrentando problemas de conectividade após a expiração do certificado, especifique a opção Apply immediately (Aplicar imediatamente) no console ou a opção
--apply-immediately
usando a AWS CLI. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.
É possível usar o AWS Management Console ou a AWS CLI para alterar o certificado CA de rds-ca-2015 para rds-ca-2019 para uma instância de banco de dados.
Como alterar a CA de rds-ca-2015 para rds-ca-2019 para uma instância de banco de dados
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados que você deseja modificar.
-
Selecione Modify.
A página Modify DB Instance (Modificar instância de banco de dados) é exibida.
-
Na seção Connectivity (Conectividade), escolha rds-ca-2019.
-
Escolha Continue (Continuar) e verifique o resumo de modificações.
-
Para aplicar as alterações imediatamente, escolha Apply immediately.
Importante Escolher essa opção reinicia o banco de dados imediatamente.
-
Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha Modify DB Instance (Modificar instância de banco de dados) para salvar suas alterações.
Importante Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.
Ou escolha Back (Voltar) para editar as alterações ou Cancel (Cancelar) para cancelar as alterações.
Para utilizar a AWS CLI com o objetivo de alterar a CA de rds-ca-2015 para rds-ca-2019 em uma instância de banco de dados, chame o comando modify-db-instance. Especifique o identificador de instância de banco de dados e a opção --ca-certificate-identifier
.
Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.
exemplo
O código a seguir modifica mydbinstance
configurando o certificado CA como rds-ca-2019
. As alterações serão aplicadas durante a janela de manutenção usando --no-apply-immediately
. Use --apply-immediately
para aplicar as alterações imediatamente.
Por padrão, essa operação reinicializa a instância de banco de dados. Se você não desejar reinicializar sua instância de banco de dados durante essa operação, poderá usar o comando modify-db-instance
da CLI e especificar a opção --no-certificate-rotation-restart
.
Essa opção não alternará o certificado até a próxima vez que o banco de dados for reiniciado, seja para manutenção planejada ou não planejada. Essa opção só é recomendada se você não usar SSL/TLS.
Use --apply-immediately
para aplicar a atualização imediatamente. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.
Para Linux, macOS ou Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --ca-certificate-identifier rds-ca-2019 \--no-apply-immediately
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --ca-certificate-identifier rds-ca-2019 ^--no-apply-immediately
Atualizar seu certificado CA aplicando manutenção de instância de banco de dados
Conclua as etapas a seguir para atualizar seu certificado CA aplicando a manutenção da instância de banco de dados.
Como atualizar o certificado CA aplicando a manutenção da instância de banco de dados
-
Baixe o novo certificado SSL/TLS conforme descrito em Como Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.
-
Atualize as aplicações de banco de dados para usarem o novo certificado SSL/TLS.
Os métodos para atualizar aplicativos para novos certificados SSL/TLS dependem dos aplicativos específicos. Trabalhe com os desenvolvedores de aplicações para atualizar os certificados SSL/TLS para suas aplicações.
Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicações para cada mecanismo de banco de dados, consulte os seguintes tópicos:
Para conhecer um script de exemplo que atualiza um armazenamento confiável para um sistema operacional Linux, consulte Script de exemplo para importar certificados para o seu armazenamento confiável.
nota O pacote de certificados contém certificados tanto para a CA antiga como para a nova, portanto, é possível atualizar o aplicativo de maneira segura e manter a conectividade durante o período de transição.
-
Aplique a manutenção da instância de banco de dados para alterar a CA de rds-ca-2015 para rds-ca-2019.
Importante Você pode optar por aplicar a alteração imediatamente. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.
É possível usar o AWS Management Console para aplicar a manutenção da instância de banco de dados a fim de alterar o certificado CA de rds-ca-2015 para rds-ca-2019 de várias instâncias de banco de dados.
Atualizar seu certificado CA aplicando manutenção a várias instâncias de banco de dados
Use o AWS Management Console para alterar o certificado CA de várias instâncias de banco de dados.
Como alterar a CA de rds-ca-2015 para rds-ca-2019 para várias instâncias de banco de dados
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Databases (Bancos de dados).
No painel de navegação, há uma opção Certificate update (Atualização de certificado) que mostra o número total de instâncias de banco de dados afetadas.
Escolha Certificate update (Atualização de certificado) no painel de navegação.
A página Update your Amazon RDS SSL/TLS certificates (Atualizar seus certificados SSL/TLS do Amazon RDS) é exibida.
nota Essa página mostra apenas as instâncias de Bancos de Dados da região atual daAWS. Se você tiver instâncias de Bancos de Dados em mais de uma região da AWS, verifique essa página em cada região da AWS para ver todas as instâncias Bancos de Dados com certificados SSL/TLS antigos.
-
Escolha a instância de banco de dados que você deseja atualizar.
Você pode programar a rotação do certificado para sua próxima janela de manutenção escolhendo Update at the next maintenance window (Atualizar na próxima janela de manutenção). Aplique a mudança imediatamente escolhendo Update now (Atualizar agora).
Importante Quando seu certificado CA é alternado, a operação reinicia a instância de banco de dados.
Se você tiver problemas de conectividade após a expiração do certificado, use a opção Update now (Atualizar agora).
-
Se você escolher Update at the next maintenance window (Atualizar na próxima janela de manutenção) ou Update now (Atualizar agora), você será solicitado a confirmar a rotação de certificado CA.
Importante Antes de programar a rotação do certificado CA no banco de dados, atualize todas as aplicações cliente que usam SSL/TLS e o certificado do servidor para se conectar. Essas atualizações são específicas ao seu mecanismo de banco de dados. Para determinar se as aplicações usam SSL/TLS e o certificado do servidor para se conectar, consulte Step 2: Update Your Database Applications to Use the New SSL/TLS Certificate. Depois de atualizar essas aplicações cliente, você pode confirmar a rotação do certificado CA.
Para continuar, escolha a caixa de seleção e escolha Confirm (Confirmar).
-
Repita as etapas 3 e 4 para cada instância de banco de dados que você deseja atualizar.
Script de exemplo para importar certificados para o seu armazenamento confiável
Veja os exemplos de scripts do shell que importam o pacote de certificados para um armazenamento de confiança.
Cada script de shell de amostra usa o keytool, que faz parte do Java Development Kit (JDK). Para obter mais informações sobre como instalar o JDK, consulte o Guia de instalação do JDK
Tópicos
Script de exemplo para importação de certificados no Linux
Veja a seguir um exemplo de script shell que importa o pacote de certificados para um armazenamento confiável em um sistema operacional Linux.
mydir=tmp/certs if [ ! -e "${mydir}" ] then mkdir -p "${mydir}" fi truststore=${mydir}/rds-truststore.jks storepassword=changeit curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem" > ${mydir}/global-bundle.pem awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n ".pem"}' < ${mydir}/global-bundle.pem for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print') echo "Importing $alias" keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt rm $CERT done rm ${mydir}/global-bundle.pem echo "Trust store content is: " keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'` echo " Certificate ${alias} expires in '$expiry'" done
Script de exemplo para importação de certificados no macOS
Veja a seguir um exemplo de script do shell que importa o pacote de certificados em um armazenamento de confiança no macOS.
mydir=tmp/certs if [ ! -e "${mydir}" ] then mkdir -p "${mydir}" fi truststore=${mydir}/rds-truststore.jks storepassword=changeit curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem" > ${mydir}/global-bundle.pem split -p "-----BEGIN CERTIFICATE-----" ${mydir}/global-bundle.pem rds-ca- for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print') echo "Importing $alias" keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt rm $CERT done rm ${mydir}/global-bundle.pem echo "Trust store content is: " keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'` echo " Certificate ${alias} expires in '$expiry'" done