A autoridade de certificação raiz instalada não parece estar funcionando?

2
  • SO: archlinux
  • Openssl dir: / etc / ssl

Acabei de instalar uma autoridade de certificados raiz. O arquivo xxx.pem e yyy.0 existe na pasta /etc/ssl/certs . Então eu verifico o vimeo.com:443 via bash:

$ openssl s_client  -connect vimeo.com:443

Mostra:

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-MD5
    Session-ID: 001635EF0132A25577F3799825F2698A8FEDCDF916393DB44E9FCC5701D5E310
    Session-ID-ctx: 
    Master-Key: C5AA72B1E0A805AA950D1E0EFC7565F0EF3949618927EA84081B65E65B664C7AB803757CFF1CB12333CB8FC7D8298BA6
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1394981067
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)

E se eu definir explicitamente o arquivo CA:

$ openssl s_client  -connect vimeo.com:443 -CAfile XXX.pem

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-MD5
    Session-ID: BF58BED9C13FF42E5DDEBC938CED703CD81A96EC59442B91FC6669D31D13E510
    Session-ID-ctx: 
    Master-Key: 197D80168908A8491C26F27B1C5AAA29BE2DC9CCBB8B840BAA45FCE683BDDB95133E58A48EDAC5AF820C97C948D436E2
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1394981110
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

Já instalei os certificados com sucesso? Por que devo especificar o arquivo CA?

    
por jilen 16.03.2014 / 15:51

2 respostas

2

Isso funciona para mim no Fedora 19.

$ openssl s_client  -connect vimeo.com:443 < /dev/null
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : RC4-MD5
    Session-ID: 2345C651AB00DC97DF7390227CFA1EE8FD4F35EDCB142C4EB053F01380890514
    Session-ID-ctx: 
    Master-Key: B1BD06863BD3CEF2C2963AF47E5269DFE19A650A27A1A7D9032D361D34C3AFC914E59FBABEAE8087AD47D6EFC067548D
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1394988228
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
DONE

Eu depuraria seu problema ainda mais usando strace para confirmar que openssl está pegando os arquivos .pem adicionados do diretório que você acha que é.

$ strace -s 2000 -o ssl.log openssl s_client  -connect vimeo.com:443 < /dev/null

Você pode então interrogar o arquivo de log resultante, ssl.log , procurando descobrir onde openssl o executável está acessando seus arquivos PEM.

open("/etc/pki/tls/openssl.cnf", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=10906, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9c0277e000
...
open("/etc/pki/tls/cert.pem", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=235586, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9c0277e000
...

Também presto atenção especial às permissões dos arquivos que você adicionou, além de ter certeza de que o arquivo de configuração openssl , /etc/pki/tls/openssl.cnf , está fazendo referência ao diretório correto:

...
[ ca ]
default_ca  = CA_default        # The default ca section

####################################################################
[ CA_default ]

dir     = /etc/pki/CA       # Where everything is kept
certs       = $dir/certs        # Where the issued certs are kept
crl_dir     = $dir/crl      # Where the issued crl are kept
database    = $dir/index.txt    # database index file.
...
    
por 16.03.2014 / 17:52
2

Esta página link diz basicamente copiá-lo em /etc/ca-certificates/trust-source/anchors/ e, em seguida, executar update-ca-trust .

Se você usa o Manjaro em vez do Arch, por alguma razão isso não funciona, mas se você colocá-los em /usr/share/ca-certificates/trust-source/anchors/ , ele funciona bem. (e eu acho que eu gosto mais do Manjaro ... você pode simplesmente rm o arquivo e update-ca-trust de novo e ele se foi, mas no arco ele parece inserir e copiar em muitos lugares, então ele acaba em pelo menos 11 arquivos no final)

    
por 10.08.2015 / 17:34