Como posso resolver erros de certificado expirado ou de “certificado inválido” ao invocar uma API da API Gateway usando um nome de domínio personalizado?

2 minuto de leitura
0

Configurei um nome de domínio personalizado para minha API da API Gateway. Recebi um erro informando que o certificado AWS Certificate Manager (ACM) está expirado ou é um “certificado inválido”.

Breve descrição

O “erro de certificado expirado” ocorre quando o certificado usado para criar o nome de domínio personalizado expira.

O “erro de certificado inválido” ocorre devido a um nome comum (CN) ou nome de assunto incompatível no certificado.

Resolução

Certificados ACM expirados

Se seu certificado estiver expirado, poderá receber um erro semelhante ao seguinte: "SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]"

Para verificar a expiração do certificado, execute o comando OpenSSL s_client semelhante ao seguinte:

openssl s_client -servername <custom domain name> -connect <custom domain name>:443 2>/dev/null | openssl x509 -noout -dates

Para renovar o certificado, consulte Renovação gerenciada do certificado no AWS Certificate Manager.

Para evitar certificados expirados, consulte Como monitorar as expirações de certificados importados no ACM.

Certificados ACM incompatíveis

Se seu certificado tiver um CN ou nome de assunto incorreto, você receberá um erro semelhante ao seguinte: "ERR_CERT_COMMON_NAME_INVALID"

Para resolver, confirme as seguintes configurações:

  • O certificado usado para criar o nome de domínio personalizado existe no ACM.
  • O nome do assunto do certificado ou CN inclui o nome de domínio personalizado. Por exemplo, se o nome de domínio personalizado for custom.example.com, o nome do assunto ou CN deverá incluir exemplo.personalizado.com ou *exemplo.com.
  • Verifique se há um registro DNS apontando para o nome de domínio personalizado da API Gateway. O registro DNS pode ser do tipo CNAME ou A.

Observação: os nomes de domínio personalizados não podem apontar diretamente para o endpoint execute-api porque o certificado não tem o domínio personalizado listado como Nome alternativo do assunto (SAN).

Exemplo de configuração:

exemplo.personalizado.com -> CNAME record -> d-yg54udirl4.execute-api.us-east-1.amazonaws.com

É possível verificar sua configuração executando o comando dig em seu domínio personalizado de forma semelhante ao seguinte:

$ dig custom.example.com

Informações relacionadas

Como posso resolver erros de resolução de DNS ou de incompatibilidade de certificados para meu nome de domínio personalizado da API Gateway?