O ApsaraDB RDS for MySQL oferece suporte a certificados gerenciados pela Alibaba Cloud e a certificados personalizados para criptografia SSL. Este tópico descreve como gerar um certificado personalizado com o OpenSSL e configurá-lo na sua instância RDS.
Pré-requisitos
Antes de começar, verifique se você tem:
-
OpenSSL instalado
Linux: O OpenSSL já vem pré-instalado. Nenhuma ação é necessária.
Windows: Baixe e instale o OpenSSL em slproweb.com.
-
Uma instância RDS que atenda aos requisitos de versão:
Edição
Versões do MySQL compatíveis
RDS High-availability Edition
MySQL 8.4, 8,0, 5,7 ou 5,6
RDS Cluster Edition
MySQL 8.4, 8,0 ou 5,7
RDS Basic Edition
MySQL 8.4, 8,0 ou 5,7
(Obrigatório apenas para criptografia SSL forçada) A instância deve executar o MySQL 8.4, 8,0 ou 5,7, em qualquer uma das edições acima, com versão secundária do mecanismo 20241130 ou posterior.
Observações de uso
Ativar o SSL aumenta a utilização da CPU e as latências de leitura e escrita.
Após ativar o SSL, feche as conexões existentes e reconecte-se para que a criptografia entre em vigor.
Configurar ou modificar um certificado personalizado, ou desativar o SSL, aciona uma reinicialização de aproximadamente 3 minutos. Execute essas operações fora dos horários de pico.
Com a criptografia SSL forçada ativada, o sistema aceita apenas conexões criptografadas por SSL e nega conexões sem SSL.
Etapa 1: Gerar um certificado personalizado
Não adicione uma senha à chave privada. Uma chave privada protegida por senha impede a ativação do SSL.
Os comandos a seguir usam sintaxe CentOS. No Windows, execute os mesmos comandos openssl, mas copie arquivos e edite o conteúdo manualmente em vez de usar cp e vim.
-
Gere um certificado CA autoassinado (
server-ca.crt) e sua chave privada (server-ca.key). O valor-daysdefine o período de validade do certificado. Defina esse valor de acordo com sua política de rotação (por exemplo, 365 dias para renovação anual).openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-ca" -
Gere uma solicitação de assinatura de certificado (CSR) (
server.csr) e uma chave privada do servidor (server.key). Substituarm-bpxxxxx.mysql.rds.aliyuncs.compelo endpoint que deseja proteger. Para encontrar seu endpoint, consulte Visualizar e gerenciar endpoints e portas da instância. Um certificado personalizado protege um único endpoint.Parâmetro
Descrição
Exemplo
Country Name
Código ISO de duas letras do país
CN
State or Province Name
Estado ou província
ZheJiang
Locality Name
Cidade
HangZhou
Organization Name
Nome da empresa
Alibaba
Organizational Unit Name
Nome do departamento
Aliyun
Common Name
Definido em openssl.cnf; deixe em branco
—
Email Address
Deixe em branco
—
A challenge password
Deixe em branco
—
An optional company name
Deixe em branco
—
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=rm-bpxxxxx.mysql.rds.aliyuncs.com"Quando solicitado, configure os campos opcionais da Solicitação de Assinatura de Certificado (CSR):
-
Assine a CSR com o certificado CA para gerar o certificado do servidor (
server.crt).openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt -
Verifique os arquivos gerados executando
ls:Arquivo
Conteúdo
server.crtCertificado do servidor
server.keyChave privada do certificado do servidor
server-ca.crtCertificado CA autoassinado
server-ca.keyChave privada do certificado CA autoassinado
# ls server-ca.crt server-ca.key ca.srl server.crt server.csr server.key
Etapa 2: Carregar o certificado e ativar o SSL
Após configurar o certificado personalizado, o status da instância muda para Modifying SSL Settings por aproximadamente 3 minutos. Aguarde até que o status retorne para Running antes de prosseguir.
Faça login no console do ApsaraDB RDS. Na página Instances, selecione a região onde sua instância está localizada e clique em ID da instância.
No painel de navegação à esquerda, clique em Data Security. Na página exibida, clique em aba SSL.
Clique em Custom Certificate e, em seguida, clique em interruptor ao lado de Disabled.
-
Na caixa de diálogo exibida, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Server Certificate
Cole o conteúdo completo de
server.crt, de-----BEGIN CERTIFICATE-----até-----END CERTIFICATE-----.Private key of server certificate
Cole o conteúdo completo de
server.key, de-----BEGIN PRIVATE KEY-----até-----END PRIVATE KEY-----.Forceful Encryption
Ative para permitir apenas conexões criptografadas por SSL. Disponível apenas no MySQL 8.4, 8,0 ou 5,7 com versão secundária do mecanismo 20241130 ou posterior.
Etapa 3: Conectar-se à instância via SSL
Conecte-se à instância RDS via SSL. Para mais informações, consulte Conectar-se a uma instância do ApsaraDB RDS for MySQL via SSL.
Etapa 4: (Opcional) Atualizar o certificado personalizado
A atualização do certificado aciona uma reinicialização, exceto para o MySQL 8.0. Execute esta operação fora dos horários de pico.
Na aba SSL, clique em Update SSL. Na caixa de diálogo exibida, cole o conteúdo atualizado para Server Certificate e Private key of server certificate e clique em OK.
Etapa 5: (Opcional) Desativar a criptografia SSL
Desativar o SSL aciona uma reinicialização. Execute esta operação fora dos horários de pico.
Na aba SSL, clique em interruptor ao lado de Enabled.
Perguntas frequentes
O que fazer se meu certificado personalizado estiver prestes a expirar?
O período de validade de um certificado personalizado é definido pelo valor -days configurado durante a geração. O sistema envia uma notificação antes da expiração. Ao receber a notificação, atualize o período de validade do certificado o mais rápido possível para evitar impactos nas suas cargas de trabalho.