Como resolver erros: "Subject Alternative Name Missing"; “NET::ERR_CERT_COMMON_NAME_INVALID”; ou "A sua ligação não é privada " no Google Chrome

RELACIONADO COM:

  • Navegador web:
    • Google Chrome Version 58 ou superior
  • Produtos Epson:
    • TM-T88VI-i / TM-T88VI-iHub
    • TM-m30
    • TM-P80 / TM-P60II / TM-P20
    • UB-E04 / UB-R04

EXPLICAÇÃO:

O problema:

Para o Chrome 58 e posteriores, apenas a extensão subjectAlternativeName (não o commonName), é usado para combiner com o nome de domínio e o certificado do site. Se o certificado não possua a extensão correcta subjectAlternativeName, o utilizador irá receber um erro, avisando-o que a ligação não é privada.

Background:

O RFC 2818 descreve dois métodos para equiparar um nome de domínio a um certificado:

  • Utilizando os nomes disponíveis dentro da extensão subjectAlternativeName extension; ou,
  • Usar o commonName.

O uso do commonName foi descontinuado no RFC 2818 (publicado no ano 2000), mas o suporte permanece disponível para a maioría dos nossos clientes. Por motivos de segurança, este suporte já não se encontra disponível.

Soluções:

Existem duas opções para utilizadores do Google Chrome poderem resolver o problema:

  1. Disabilitar a verificação do subjectAlternativeName no Chrome.

    Trata-se de uma forma de contornar o problema que não irá server para lça da versão 65 do Google Chrome, e serve apenas como uma solução temporária.

  2. Substitua o certificado por outro que utilize a extensão subjectAlternativeName.

    Se a implementação se faça de forma correcta, obter-se-á uma solução permanente que deverá funcionar em todos os browsers que venham a mplementar a verificação subjectAlternativeName.

Como desabilitar a verificação do subjectAlternativeName no Chrome:

Ao adicionar os seguintes ajustes ao seu ambiente, o Chrome poderá ser forçado a permitir certificados que omitam uma extensão subjectAlternativeName:

  • Windows registry (REG_DWORD):

    Software\Policies\Google\Chrome\EnableCommonNameFallbackForLocalAnchors

  • Mac/Linux preference name (Boolean):

    EnableCommonNameFallbackForLocalAnchors

  • Android restriction name (Boolean):

    EnableCommonNameFallbackForLocalAnchors

Uma vez aplicada esta configuração, o Google Chrome começará a usar o commonName de um servidor de forma a equiparar o hostname sempre que o certificado não possua a extensão subjectAlternativeName, e sempre que o mesmo possa validar e ancorar com sucesso a um certificado CA local.

Exemplo:

Uma chave de registry poderá ser adicionada ao Windows através do indicado abaixo numa linha de comandos:

reg add HKLM\Software\Policies\Google\Chrome /v EnableCommonNameFallbackForLocalAnchors /t REG_DWORD /d 1

Não será efectivo após a versão 65 do Google Chrome.

 

Examplo de criação e “upload” de um certificado utilizando uma extesão subjectAlternativeName

Para este exemplo, será criado um ficheiro de configuração que contém a informação necessária:

Este ficheiro contém detalhes específicos relacionados com a segurança de objectos que pretendemos gerar, incluídos os host names, assinalados a vermelho. De notar que isto poderá ser um endereço IP, ou DNS.

Uma vez gerado o ficheiro, poderemos executar o commando req para gerar os objectos de segurança. Por exemplo:

Para que possa fazer o upload para a impressora, será necessário “empacotar” os seguintes objectos de segurança (chave e certificado) num arquivo PKCS#12. Por exemplo:

O OpenSSL irá solicitar uma password.

O resultado é um arquivo PKCS#12 preparado para ser subido para o servidor (printer), e um certificaod pronto para ser instalado no cliente.