12.04.4 servidor não pode verificar certificados SSL comuns, correções comuns falhando

7

O problema

Eu tenho um servidor em um farm que, de repente, não consegue lidar corretamente com certificados SSL. A tentativa de fazer um comando curl como curl -v https://google.com resulta em:

curl -v https://google.com
* About to connect() to google.com port 443 (#0)
*   Trying 74.125.137.101... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Usar openssl s_client é um pouco mais detalhado.

# openssl s_client -host google.com -port 443
CONNECTED(00000003)
depth=2 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate

As coisas foram tentadas até agora

  • Reinstalando ca-certificates - já tem a versão mais recente disponível, de acordo com aptitude , Version: 20130906ubuntu0.12.04.1 .

  • Reconfigurando ca-certificates via dpkg-reconfigure . Isso parece refazer a pasta /etc/ssl/certs , mas não afeta o problema.

  • Usando update-ca-certificates --fresh para regenerar os links simbólicos nessa pasta

  • Pegando o pacote mais recente do Mozilla ca de curl.haxx.se - colocando esse arquivo .pem em /etc/ssl/certs e executando o comando update.

estranheza

O certificado que curl afirma que não pode encontrar está de fato no caminho de certificação.

# ls -l /etc/ssl/certs/*Geo*

lrwxrwxrwx 1 root root 57 Apr  7 15:57 /etc/ssl/certs/GeoTrust_Global_CA.pem -> /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
...

O arquivo de certificado mencionado tem as mesmas permissões que todas as outras caixas na minha rede, ou seja, 644.

# ls -l /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt
-rw-r--r-- 1 root root 1216 Feb 20 11:49 /usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt

Outros sites seguros, como o Github, mostram problemas idênticos com certificados diferentes. Estou executando a última versão disponível de todos os pacotes para o Ubuntu 12.04.4, incluindo curl , openssl e ca-certificates .

O que está acontecendo aqui?

    
por Mikey T.K. 08.04.2014 / 00:28

2 respostas

0

Esse problema parou de acontecer depois de algumas atualizações. Parece que o arquivo de certificados do CA fornecido nos repositórios do Ubuntu não tinha um certificado intermediário para o GeoTrust.

    
por Mikey T.K. 18.12.2014 / 16:59
2

Eu também tenho esse problema, tente isto:

openssl s_client -host google.com -port 443

este comando também imprimirá uma cadeia cert, a última é:

s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA

i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

para que você também precise do link .

Esse caminho do certificado é diferente com o caminho do certificado mostrado no navegador (IE, Firefox, Chrome), não sei por que, mas isso resolve o problema.

    
por ellusak 29.04.2014 / 08:23