O Firefox relata SEC_ERROR_CA_CERT_INVALID após alterar o certificado do site

0

Eu tenho um servidor rodando na minha rede interna. Para suporte ao SSL, configurei uma CA interna (usando o OpenSSL) e emiti um certificado para o servidor. A cadeia de certificados é a seguinte:

Example Root CA V1
+-- server.example.com

Instalei o certificado do servidor no servidor e importei o certificado raiz no Firefox, e isso funcionou até agora.

Como o certificado raiz está prestes a expirar, decidi configurar uma autoridade de certificação totalmente nova com uma hierarquia mais profunda:

Example Root CA V2
+-- Example Signing CA V2
    +-- server.example.com

Também criei um certificado de usuário, assinado pela CA de assinatura.

Eu adicionei o certificado de usuário no Firefox. A nova CA raiz é exibida em Autoridades e o certificado intermediário (CA de assinatura) é exibido em Outros. Para o certificado raiz, defini as três marcas de seleção em Editar confiança.

Em seguida, atualizei o certificado no servidor. Quando agora tento me conectar ao servidor, o Firefox reclama que a conexão não é segura:

server.example.com uses an invalid security certificate.
The certificate is not trusted because it was issued by an invalid CA certificate.
Error code: SEC_ERROR_CA_CERT_INVALID

Clicar no código de erro fornece:

https://server.example.com/

Issuer certificate is invalid.

HTTP Strict Transport Security: true
HTTP Public Key Pinning: false

Certificate chain: 

seguido pelo certificado do servidor, pelo certificado CA intermediário e pelo certificado CA raiz.

O servidor executa ownCloud e Webmin; até agora, substituí apenas o certificado Webmin. O Firefox é a versão 50.1.0.

O que há de errado aqui?

user149408
fonte

Respostas:

0

Resolvi-o. Aparentemente, SEC_ERROR_CA_CERT_INVALIDé uma indicação de que um dos certificados da cadeia não é aprovado / confiável para a finalidade para a qual está sendo usado.

Ao examinar meus certificados, descobri que meu certificado CA intermediário não era um certificado CA de acordo com suas extensões x509_v3. Gere novamente o certificado intermediário com as seguintes configurações:

X509v3 extensions:
    X509v3 Extended Key Usage: critical
        TLS Web Server Authentication, TLS Web Client Authentication
    X509v3 Basic Constraints: 
        CA:TRUE
    X509v3 Key Usage: 
        Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Certificate Sign, CRL Sign

Então, assinei novamente a solicitação de certificado do servidor com o bom certificado intermediário e importei o certificado intermediário para o Firefox. Agora, o certificado intermediário é exibido em Autoridades, não em Outros.

O único desafio foi substituir o certificado no Webmin, pois eu efetivamente saí da interface do usuário da web.

  • SSH no servidor
  • sudo vi /etc/webmin/miniserv.conf
  • Mude ssl=1para ssl=0e salve
  • sudo /etc/init.d/webmin restart
  • Efetue login no Webmin via HTTP simples, substitua o certificado pelo válido e efetue logout novamente.
  • sudo vi /etc/webmin/miniserv.conf
  • Mudar ssl=0de volta para ssl=1e salvar
  • sudo /etc/init.d/webmin restart

Quando tentei me conectar ao meu servidor via HTTPS, funcionou.

Lição aprendida: ao assinar uma solicitação de certificado com o OpenSSL, NÃO há verificação para garantir que o certificado de assinatura seja realmente um certificado de CA. Tudo parecerá funcionar bem, e você não receberá nenhum erro ou qualquer outra indicação de que algo está errado até você tentar se conectar ao servidor.

user149408
fonte