Problema de certificado CA com o Squid no CentOS7

2

Estou administrando um proxy da Web corporativo que executa o Squid 3.5.10 no CentOS 7 (um dispositivo Diladele), causando problemas no SSL, e estou tendo problemas para adicionar novos certificados de CA ao armazenamento confiável do sistema, o que leva a nossos usuários não podem acessar vários sites protegidos por SSL que deveriam poder. Um desses sites é o link (sim, é o que parece, mas nossa política é não se importar com o que as pessoas surfam durante o almoço quebra, desde que seja legal).

A mensagem de erro do Squid é a usual X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY , o que significa que, por algum motivo, o Squid não confia ou não pode verificar o certificado do servidor de destino. Até agora, pegar o certificado raiz da CA no formato PEM das páginas de suporte da CA, colocando-o em /etc/pki/ca-trust/source/anchors , executando update-ca-trust e reiniciar o Squid era suficiente para corrigir o problema - mas não no meu caso atual. O pacote ca-certificates está na versão atual, pois acabei de executar uma atualização completa do yum na máquina.

Todos os domínios com os quais estou tendo problemas atualmente têm um certificado "Go Daddy Secure Certificate Authority - G2". Eu baixei todos os certificados de sua página de suporte ( link ), instalei-os como descrito acima, recarreguei o squid, mas o erro persistiu. Eu até assisti update-ca-trust com strace para ver se realmente está pegando os arquivos PEM corretos - e isso acontece.

O que me deixa um pouco estranho é que a página de download do certs.godaddy.com parece estar usando exatamente o mesmo certificado raiz e intermediário de alguns domínios problemáticos, mas essa página funciona bem através do Squid. Quando comparo os certs no Firefox, não vejo nenhuma diferença na especificação geral e nos algoritmos, mas ainda assim, um funciona e outros não.

Estou no fim da minha sagacidade e espero que alguém me estimule na direção certa para resolver isso. Não posso adicionar exceções de proxy para cada segunda página com um certificado do GoDaddy.

    
por Hurga 13.01.2017 / 13:37

1 resposta

3

As lojas da CA em computadores e navegadores incluem os certificados da CA raiz.

Os sites nunca devem receber certificados das CAs raiz, mas sim de um intermediário.

É responsabilidade do site retornar tanto o seu próprio certificado quanto o certificado intermediário, para que os navegadores possam encadear o intermediário a um dos certificados de raiz em que ele confia.

No exemplo do site que você forneceu, eles não estão incluindo o certificado intermediário para que os usuários não possam confiar no site. Isso pode ser visto com uma verificação do ssllabs aqui: link . Como você pode ver, ele está enviando apenas um certificado em vez de dois e recebe um aviso incompleto por causa disso. A expansão da seção Caminhos do certificado mostra a cadeia completa e permite que você faça o download desse intermediário, caso deseje instalá-lo.

Deve-se observar que, com frequência, os navegadores lidam com essa situação - porque terão intermediários em cache comuns de visitar outros sites ou porque tentarão localizar o certificado intermediário ausente. Frequentemente, essas configurações incorretas não são detectadas pela maioria dos usuários e pelos operadores do site. Adivinhar que o ataque de SSL aqui não é tão amigável para lidar com esses erros.

Isto está em contraste com certs.godaddycom ( link ) que é enviando a cadeia completa. Na verdade, ele tem o problema inverso e está enviando muitos certificados, pois não há necessidade de enviar o certificado raiz (mas talvez isso esteja lá por razões históricas, como você pode ver, há dois caminhos de cadeia cert - um dos quais requer o certificado raiz ser assinado por outro certificado, que provavelmente é usado por navegadores mais antigos que não possuem o novo certificado raiz em seus armazenamentos de confiança).

De qualquer forma, suas opções são:

  1. Diga aos seus usuários que o site não está configurado corretamente e volte ao trabalho e pare de desperdiçar tempo da empresa em sites suspeitos.
  2. Adicione o certificado intermediário à sua loja raiz do Squid CA. É claro que isso não é uma CA raiz e não deve estar na loja e se alguma vez for revogada por qualquer motivo, você ainda confiará nela (que é uma das razões pelas quais os certificados não são emitidos a partir de certificados de raiz, pois é muito difícil remover eles de lojas de trusts). Então você está introduzindo um risco de segurança incluindo isso.
  3. Entre em contato com o site e explique o problema para eles e peça que eles o consertem. E, em seguida, esteja preparado para solucionar basicamente todos os outros sites indesejados desejados por seus usuários!

Sem dúvida eu escolheria a opção 1 se fosse eu: -)

    
por 14.01.2017 / 20:04