Eu crosscompiled openssl para um dispositivo ARM executando o Linux 2.6.36.
Se eu tentar estabelecer uma conexão com um site usando:
openssl s_client -connect google.com:443
Eu receberei um erro 20: não é possível obter o certificado de emissor local .
Se eu correr:
openssl s_client -connect google.com:443 -CAfile=/etc/ssl/certs/ca-certificates.crt
a conexão será bem sucedida sem erros.
a versão openssl -d retorna OPENSSLDIR: /usr/lib/ssl
, cuja estrutura é a seguinte:
ls -lh /usr/lib/ssl/
lrwxrwxrwx 1 root root 14 Jan 1 1970 certs -> /etc/ssl/certs
lrwxrwxrwx 1 root root 20 Jan 1 1970 openssl.cnf -> /etc/ssl/openssl.cnf
lrwxrwxrwx 1 root root 17 Jan 1 1970 private -> /etc/ssl/private
lrwxrwxrwx 1 root root 22 Jan 1 1970 misc
lrwxrwxrwx 1 root root 34 Jan 1 1970 openssl.cnf.dist
Eu preciso do openssl configurado corretamente para rodar um software que eu desenvolvi, então eu não posso configurar evertytime para os flags -CAfile, porque eu não chamarei diretamente o openssl s_client.
Como eu poderia definir o diretório no qual o openssl procura por certificados? Estou tentando resolver esse problema desde alguns dias sem sucesso.