Resolveu. Aparentemente SEC_ERROR_CA_CERT_INVALID
é uma indicação de que um dos certificados na cadeia não é aprovado / confiável para o propósito para o qual está sendo usado.
Ao examinar meus certificados, descobri que meu certificado de CA intermediário não era um certificado de CA, conforme suas extensões x509_v3. Eu regenerado 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
Em seguida, assinei novamente a solicitação cert do servidor com o certificado intermediário bom e importei o certificado intermediário para o Firefox. Agora, o certificado intermediário mostra sob Autoridades, não em Outros.
O único desafio foi substituir o certificado no Webmin, pois efetivamente me mantive fora da interface da Web.
- SSH no servidor
-
sudo vi /etc/webmin/miniserv.conf
- Altere
ssl=1
parassl=0
e salve -
sudo /etc/init.d/webmin restart
- Faça login no Webmin via HTTP simples, substitua o certificado pelo bom e faça o logout novamente.
-
sudo vi /etc/webmin/miniserv.conf
- Altere
ssl=0
de volta parassl=1
e salve -
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 autoridade de certificação. Tudo parece funcionar bem, e você não receberá um erro ou qualquer outra indicação de que algo está errado até tentar conectar-se ao servidor pela primeira vez.