'Não é uma autoridade de certificação' durante a importação do certificado autoassinado

5

Eu criei um certificado SSL autoassinado para desenvolvimento local. Ao acessar a página, recebo um erro NET::ERR_CERT_AUTHORITY_INVALID . Mas quando tento importá-lo para o Chrome ( chrome: // settings / certificates ), ele falha:

The file contained one certificate, which was not imported:

  • mylocalwebapp.dev: Not a Certification Authority

Este é o comando que executei para criar o certificado:

openssl req -new -x509 -nodes \
 -extensions SAN \
 -reqexts SAN  \
 -days 365 \
 -newkey rsa:2048 \
 -keyout /etc/ssl/private/apache-selfsigned.key \
 -out /etc/ssl/certs/apache-selfsigned.crt \
 -config <(cat /etc/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:mylocalwebapp.dev'))

Eu adicionei as opções SAN porque, a partir da versão 58, o Chrome não aceita sem SAN . Funcionou no Chrome 57 e ainda funciona no Firefox.

Como posso obter meu certificado auto-assinado funcionando no Chrome 58 no Ubuntu 17.04?

    
por Stephan Vierkant 20.04.2017 / 13:56

1 resposta

7

Só para garantir que estamos cobrindo nossas bases ... Você já tentou os processos descritos aqui? link

Isso costumava funcionar para mim, mas a partir desta manhã, após atualizar para o Chrome 58.0.3029.81, também recebo o seguinte erro no console para um certificado autoassinado que costumava funcionar no Ubuntu 16.04:

Certificate Error
There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID).

EDITAR:

Acabei de ter sucesso com um dos métodos do link mencionado acima. Ele percorre completamente o Chrome porque parece que algo mudou com o Chrome e não está mais funcionando direito.

Para descarregar o certificado usando o cliente OpenSSL (provavelmente não é necessário, mas caso você queira ser muito completo):

$ echo QUIT | openssl s_client -connect $DOMAIN_TO_FETCH_FROM:443 | sed -ne '/BEGIN CERT/,/END CERT/p' > my-cert

Para instalar o certificado despejado usando certutil . Se você não despejar seu certificado com o openssl, substitua my-cert pelo nome do arquivo apropriado:

$ certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n my-cert -i my-cert

Verifique a instalação do certificado com certutil (se você se sentir inclinado):

$ certutil -d sql:$HOME/.pki/nssdb -L

# Certificate Nickname                                         Trust Attributes
#                                                              SSL,S/MIME,JAR/XPI
#
# my-cert                                                      P,,  

Feche completamente e reinicie o Chrome e talvez você tenha sucesso. Trabalhei para mim em ambos os 58 e 59-beta.

    
por 20.04.2017 / 14:38