HTTPS não funciona com dois certificados intermediários

2

Estou tentando criar minha própria autoridade de certificação usando o software XCA. Eu criei com êxito a CA raiz ( Fisir Technologies CA ) e a CA intermediária ( Fisir Technologies Intermediate CA X1 ). No entanto, quero ter mais uma CA intermediária ( Fisir Technologies Endpoint CA WWW ) sob a primeira CA intermediária ( Fisir Technologies Intermediate CA X1 ). A segunda CA intermediária deve emitir os certificados da entidade final.

Eu fiz tudo isso e importei minha CA raiz como uma autoridade de certificação raiz confiável (no Windows). Em seguida, criei um novo certificado HTTPS assinado pela segunda CA intermediária. Eu tentei abri-lo com o visualizador de certificado padrão no Windows, mas ele me disse que ele não tem informações suficientes para validar o certificado. Isso era o que eu esperava, pois havia instalado apenas a CA raiz.

Por isso, criei uma cadeia de certificados, incluindo a CA raiz, as duas CAs intermediárias e o certificado HTTPS. Eu carreguei no meu VPS, configurei o servidor HTTPS no nginx e tentei acessá-lo. Mas o Google Chrome me acolheu com um erro NET::ERR_CERT_INVALID .

Eu cliquei na fechadura vermelha cruzada na barra de endereço e ela disse que o certificado não é válido. Então escolhi ver o certificado e o abri novamente no visualizador de certificado padrão do Windows. Mas não mostrou nenhum erro. Eu olhei para o caminho do certificado e ele foi mostrado corretamente:

Caminho do certificado

Ele também disse que o certificado é válido. Além disso, cada verificador de HTTPS on-line que eu encontrei não mostrou nenhum problema com a configuração (exceto para CA raiz não confiável, é claro).

Eu tentei modificar várias propriedades do certificado, mas nunca funcionaria. Então tentei emitir o mesmo certificado da primeira vez, mas dessa vez eu o assinei com a primeira CA intermediária. Eu atualizei a página e funcionou.

Mas quero emitir os certificados usando a segunda CA intermediária. Alguém sabe qual é o problema?

Você pode verificar o problema ao vivo no link .

Obrigado.

    
por Jacob 07.04.2016 / 10:02

1 resposta

2

Você tem alguns problemas aqui:

  1. Seu certificado de CA raiz tem um pathlen em seu basicConstraints - não é necessário e não é usado, mas não deve causar problemas.
  2. Você tem uma política de certificado em seu certificado de CA raiz. Isso seria melhor aplicado por sua autoridade de certificação raiz às autoridades de certificação subordinadas. Se você quisesse alterar a política em uma data posterior ou adicionar outra política, teria que renunciar e emitir novamente seu certificado de CA raiz para todas as partes confiáveis. Novamente, isso não deve causar o problema relatado.

No entanto ...

  1. Sua CRL da CA raiz no ponto de distribuição da CRL, no link , está inacessível. Suas partes confiáveis não podem criar cadeias, pois não podem verificar a revogação. Isso pressupõe que eles verifiquem.
  2. A CRL da sua primeira AC subordinada também está inacessível no link - igual ao acima.
  3. A CRL da sua CA de emissão também está inacessível no link - há um padrão que se forma aqui ; -)
  4. O servidor OCSP na extensão de acesso a informações da autoridade está inacessível (não será nem mesmo resolvido para um endereço IP). Uma terceira parte confiável que usa o OCSP para verificar a revogação falhará.

Eu acho que seus problemas são de responsabilidade das partes confiantes (Chrome, etc) não serem capazes de verificar a revogação e, portanto, não conseguem criar uma cadeia de certificados com êxito.

    
por 07.04.2016 / 14:06