Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Configure a custom certificate

Última atualização: Aug 20, 2026

O ApsaraDB RDS for PostgreSQL oferece suporte à criptografia ssl com certificados gerenciados pela Alibaba Cloud e certificados personalizados. Use um certificado personalizado quando precisar controlar a autoridade certificadora (CA) ou proteger vários endpoints com Subject Alternative Names (SANs).

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:

  • Uma instância RDS executando o PostgreSQL 10 ou posterior com discos em nuvem. Instâncias RDS Serverless não têm suporte.

  • OpenSSL instalado. O Linux inclui o OpenSSL por padrão. No Windows, baixe e instale-o na página Win32/Win64 OpenSSL.

Observações de uso

  • Ativar a criptografia ssl aumenta o uso da CPU e as latências de leitura e gravação.

  • Após ativar a criptografia ssl, feche as conexões existentes e estabeleça novas para que a alteração tenha efeito.

  • As operações a seguir reiniciam a instância RDS, processo que leva cerca de 3 minutos. Execute-as fora do horário de pico:

    • Configure um certificado personalizado

    • Modifique um certificado personalizado existente

    • Desativar a criptografia ssl

Etapa 1: Gerar os arquivos de certificado

Aviso

Não ative a criptografia por senha ao crie uma chave privada para um certificado de servidor ou certificado autoassinado. Chaves privadas criptografadas por senha impedem a ativação da criptografia ssl.

Os comandos a seguir usam o CentOS como exemplo. No Windows, execute os mesmos comandos openssl, mas use copiar e colar e um editor de texto em vez de cp e vim.

Endpoint único

Execute os três comandos a seguir em sequência:

# 1. Create a self-signed CA certificate and its private key
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-server-ca"

# 2. Create a certificate signing request (CSR) and private key for the server certificate
#    Replace the CN value with the endpoint you want to protect
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=pgm-bpxxxxx.pg.rds.aliyuncs.com"

# 3. Sign the CSR with the CA to produce the server certificate
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt

Para encontrar o endpoint a ser usado no valor CN, consulte View and change the endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance.

Vários endpoints (Subject Alternative Names)

Para proteger vários endpoints, inclua-os como Subject Alternative Names (SANs) no certificado.

# 1. Create a self-signed CA certificate and its private key
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-server-ca"

# 2. Copy the default OpenSSL config to a temp file
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf
No Windows, o arquivo openssl.cnf está no diretório \bin\cnf dentro da pasta de instalação do OpenSSL. Copie-o para qualquer diretório de sua preferência.

Abra o arquivo /tmp/openssl.cnf em um editor de texto e adicione o seguinte conteúdo:

# Add to the end of the [ req ] section
req_extensions = v3_req

# Add a new [ v3_req ] section
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

# Add a new [ alt_names ] section — list each endpoint as a DNS entry
[ alt_names ]
DNS.1 = pgm-bpxxxxx.pg.rds.aliyuncs.com
DNS.2 = pgm-bpyyyyy.pg.rds.aliyuncs.com

Em seguida, gere o CSR e o certificado do servidor:

# 3. Create a CSR and server private key using the updated config
openssl req -new -nodes -text -out server.csr -keyout server.key -config /tmp/openssl.cnf

# 4. Sign the CSR with the CA, including the SAN extensions
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt -extensions v3_req -extfile /tmp/openssl.cnf

Ao executar a etapa 3, o OpenSSL solicitará os parâmetros do CSR. A tabela a seguir descreve cada campo.

Parâmetro

Descrição

Exemplo

Country Name

Código de país ISO 3166 de duas letras

CN

State or Province Name

Província ou estado

ZheJiang

Locality Name

Cidade

HangZhou

Organization Name

Nome da empresa

Alibaba

Organizational Unit Name

Nome do departamento

Aliyun

Common Name

Deixe em branco — os nomes de domínio são especificados em openssl.cnf

Email Address

Deixe em branco

A challenge password

Deixe em branco

An optional company name

Deixe em branco

Verificar a saída

Após a conclusão dos comandos, execute ls para confirme se todos os arquivos necessários estão presentes:

server-ca.crt  server-ca.key  ca.srl  server.crt  server.csr  server.key

A tabela a seguir descreve cada arquivo e sua função no ssl:

Arquivo

Conteúdo

Finalidade

server.crt

Certificado do servidor

Enviado aos clientes para identificar o servidor

server.key

Chave privada do certificado do servidor

Comprova que o servidor possui o certificado

server-ca.crt

Certificado CA autoassinado

Usado pelos clientes para verificar o certificado do servidor

server-ca.key

Chave privada do certificado CA

Usada para assinar o certificado do servidor

Etapa 2: Ative a criptografia ssl com o certificado personalizado

Após configure um certificado personalizado, o status da instância muda de Running para Modifying SSL e retorna para Running em aproximadamente 3 minutos.
  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância está localizada. Clique em no ID da instância.

  2. No painel de navegação à esquerda, clique em Data Security. Na página exibida, clique em na aba SSL.

  3. Defina Select Certificate Source como Custom Certificate. Clique em Configuration ao lado de Configure Database Certificate (to Prevent Database Disguise).

  4. Na caixa de diálogo, cole o conteúdo dos arquivos nos campos correspondentes. Copie todo o conteúdo de cada arquivo, incluindo as linhas de cabeçalho e rodapé. Clique em OK. Se o certificado cobrir vários endpoints, cada endpoint aparecerá como um registro separado em Protected Host.

    Campo

    Arquivo

    Intervalo de conteúdo

    Server Certificate

    server.crt

    De -----BEGIN CERTIFICATE----- até -----END CERTIFICATE-----

    Private Key of Server Certificate

    server.key

    De -----BEGIN PRIVATE KEY----- até -----END PRIVATE KEY-----

    使用自定义证书

    使用自定义证书

Etapa 3: Conectar-se à instância via ssl

Conecte-se à instância RDS a partir de um cliente via ssl. Para mais informações, consulte Connect to an ApsaraDB RDS for PostgreSQL instance over SSL.

Etapa 4: (Opcional) Atualize o certificado personalizado

Esta operação reinicia a instância RDS. Proceda com cautela.

Na aba SSL, clique em Modify ao lado de Configure Database Certificate (to Prevent Database Disguise). Na caixa de diálogo, insira o novo certificado do servidor e sua chave privada.

更新证书

Etapa 5: (Opcional) Desativar a criptografia ssl

Esta operação reinicia a instância RDS. Proceda com cautela.

Na aba SSL, clique em Disable SSL.

closessl

Perguntas frequentes

Por que recebo o erro "The certificate address does not contain the instance connection string"?

O CN (Common Name) ou SAN (Subject Alternative Name) do certificado não contém o endpoint da instância RDS. Certificados curinga (por exemplo, *.example.com) não têm suporte.

Para resolver esse problema, regenere o certificado e defina o valor CN ou uma entrada SAN com o endpoint completo da instância RDS (por exemplo, pgm-xxx.pg.rds.aliyuncs.com). Para obter informações sobre como visualize o endpoint, consulte View and change the endpoints and port numbers of an ApsaraDB RDS for PostgreSQL instance.

Por que a configuração ssl falha com um erro de chave privada?

A chave privada foi gerada com criptografia por senha. Chaves privadas criptografadas por senha não têm suporte.

Para resolver esse problema, regenere a chave privada sem criptografia por senha. Use a flag -nodes no comando openssl req, conforme mostrado na Etapa 1. O arquivo de chave privada deve começar com -----BEGIN PRIVATE KEY-----.

Por que recebo um erro de formato de certificado ao fazer upload do certificado?

O arquivo de certificado pode não estar no formato PEM ou pode conter conteúdo extra.

Para resolver esse problema, certifique-se de enviar um arquivo de certificado no formato PEM. O conteúdo deve começar com -----BEGIN CERTIFICATE----- e terminar com -----END CERTIFICATE-----, sem texto adicional fora dessas linhas.