Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Configure a custom certificate

Última atualização: Oct 16, 2026

O ApsaraDB RDS for PostgreSQL oferece suporte à criptografia SSL com certificados gerenciados pela Alibaba Cloud e certificados personalizados. Utilize um certificado personalizado quando for necessário controlar a autoridade certificadora (CA) ou proteger vários endpoints com Nomes Alternativos do Assunto (SANs).

Este tópico descreve como gerar um certificado personalizado usando o OpenSSL e configurá-lo na sua instância RDS.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Uma instância RDS executando o PostgreSQL 10 ou posterior com discos em nuvem. Instâncias RDS Serverless não são suportadas.

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

Notas de uso

  • A habilitação da criptografia SSL aumenta a utilização da CPU e as latências de leitura e gravação.

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

  • As operações a seguir acionam uma reinicialização da instância RDS, o que leva cerca de 3 minutos. Execute-as durante horários de menor movimento:

    • Configuração de um certificado personalizado

    • Modificação de um certificado personalizado existente

    • Desabilitação da criptografia SSL

Etapa 1: Gerar os arquivos de certificado

Aviso

Não habilite a criptografia por senha ao criar uma chave privada para um certificado de servidor ou certificado autoassinado. Chaves privadas criptografadas por senha impedem a habilitação da criptografia SSL.

Os comandos a seguir usam o CentOS como exemplo. No Windows, execute os mesmos comandos openssl, mas use o copy 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 Visualizar e alterar os endpoints e números de porta de uma instância do ApsaraDB RDS for PostgreSQL.

Múltiplos endpoints (Nomes Alternativos do Assunto)

Para proteger vários endpoints, inclua-os como Nomes Alternativos do Assunto (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 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 /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

Estado ou província

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 confirmar 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

Prova que o servidor possui o certificado

server-ca.crt

Certificado de CA autoassinado

Usado pelos clientes para verificar o certificado do servidor

server-ca.key

Chave privada do certificado de CA

Usada para assinar o certificado do servidor

Etapa 2: Habilitar a criptografia SSL com o certificado personalizado

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

  2. No painel de navegação à esquerda, clique em Data Security. Na página exibida, clique 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 o conteúdo completo de cada arquivo, incluindo as linhas de cabeçalho e rodapé. Clique em OK. Se o seu 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----- a -----END CERTIFICATE-----

    Private Key of Server Certificate

    server.key

    De -----BEGIN PRIVATE KEY----- a -----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 Conectar-se a uma instância do ApsaraDB RDS for PostgreSQL via SSL.

Etapa 4: (Opcional) Atualizar o certificado personalizado

Esta operação aciona uma reinicialização da instância RDS. Prossiga 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) Desabilitar a criptografia SSL

Nota

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 (Nome Comum) ou SAN (Nome Alternativo do Assunto) do certificado não contém o endpoint da instância RDS. Certificados curinga (por exemplo, *.example.com) não são suportados.

Para resolver esse problema, regenere o certificado e defina o valor CN ou uma entrada SAN como o endpoint completo da instância RDS (por exemplo, pgm-xxx.pg.rds.aliyuncs.com). Para obter informações sobre como visualizar o endpoint, consulte Visualizar e alterar os endpoints e números de porta de uma instância do ApsaraDB RDS for PostgreSQL.

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

A chave privada foi gerada com criptografia por senha. Chaves privadas criptografadas por senha não são suportadas.

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 o 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 fazer o upload de um arquivo de certificado no formato PEM. O conteúdo deve começar com -----BEGIN CERTIFICATE----- e terminar com -----END CERTIFICATE-----, sem texto extra fora dessas linhas.