Pular para o conteúdo
ecdsa.com
GNU Wget (GnuTLS build); the alias is the OpenSSL build's wordingcurl

Mensagem de erro

The certificate's owner does not match hostname 'api.example.com'

Também aparece como

  • ERROR: no certificate subject alternative name matches

Builds do wget com GnuTLS imprimem esta linha; builds com OpenSSL imprimem “ERROR: no certificate subject alternative name matches” seguido de “requested host name '<host>'.” na linha seguinte. O host é o da sua URL.

O que significa

O certificado passou na verificação, mas foi emitido para nomes diferentes do host da URL, então o wget para. O host é comparado com os nomes DNS da extensão Subject Alternative Name do certificado, que é onde todas as CAs atuais colocam os nomes que um certificado cobre. O wget sai com o código de saída 5.

Por que acontece

Como corrigir

  1. 1.

    Listar os nomes que o certificado cobre

    Compare as entradas subjectAltName com o host da URL.

    bash
    echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null \
      | openssl x509 -noout -ext subjectAltName
  2. 2.

    Reemitir o certificado com o nome que falta

    Inclua na solicitação do certificado todos os nomes de host que os clientes usam e depois faça o deploy e recarregue.

    bash
    sudo certbot certonly --nginx -d example.com -d www.example.com -d api.example.com
  3. 3.

    Usar um nome do certificado

    Se o servidor for acessível por um nome listado, use esse nome na URL em vez de um endereço IP ou alias.

    bash
    # Download through a name the certificate lists, not an IP or alias
    wget https://www.example.com/file.tar.gz

Erros relacionados

Ver toda a base de erros de assinatura