Quais certificados intermediários são necessários (Apache)?

1

Estou recebendo o seguinte erro no meu servidor HPUX / Apache:

Certificate Verification: Error (20): unable to get local issuer certificate

Quando vejo meus certificados raiz, tenho o certificado raiz do DoD Root CA-2 incluído no servidor.

O certificado do meu site tem a cadeia do DoD Raiz CA-2 - > DoD CA-28 - > Certificado.

quando eu faço o seguinte, recebo um erro:

-bash-4.3$ openssl s_client -connect mysite:443 -showcerts
CONNECTED(00000003)
depth=0 /C=US/O=U.S. Government/OU=DoD/OU=PKI/OU=USN/CN=mysite
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=US/O=U.S. Government/OU=DoD/OU=PKI/OU=USN/CN=mysite
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=US/O=U.S. Government/OU=DoD/OU=PKI/OU=USN/CN=mysite
verify error:num=21:unable to verify the first certificate
verify return:1
20509:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1102:SSL alert number 40
20509:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:182:

Além do erro e da confirmação do comando openssl acima, meu site funciona na maior parte do tempo (tenho uma falta de memória que está me causando problemas).

Preciso do certificado DoD CA-28 no meu armazenamento raiz no meu servidor?

    
por Bart 19.10.2016 / 17:17

1 resposta

0

Para o Apache HTTPD, você "requer" apenas a chave RSA e o certificado assinado X509 ou autoassinado. Nenhuma CA é necessária.

No entanto, alguns clientes irão reclamar se eles não virem que você tem a cadeia completa ou pelo menos a cadeia de CAs, exceto a raiz, se eles a tiverem.

Vamos supor que exista uma autoridade de assinatura chamada com 3 ca's, chamada EXAMPLE, e assinou seu certificado.

ROOT-EXAMPLE <-- browsers may have this if it is a known authority
SUB-EXAMPLE  <--- you haven't included this one
SIGNER-EXAMPLE <--- you haven't included this one
YOURCERT <-- you are offering this one
YOURKEY <-- you are offering this one

Então, brevemente, para poder criptografar-descriptografar o Apache HTTPd, é necessário apenas os dois primeiros a partir da parte inferior, e você deve adicionar o restante (exceto a raiz, se incluída nos navegadores, o que não é necessário.

Como fazer isso com o Apache HTTPD (incluir todos)? Simples

SSLCertificateKeyFile /path/to/rsa.key
SSLCertificateFile /path/to/chain.crt <-- here you can include the signed and the ca's from root to leaf.
    
por 20.10.2016 / 10:41