Estou com problemas nos quais o pacote CA que foi incluído na minha versão do cURL está desatualizado.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Ler a documentação não me ajudou, porque eu não entendi o que precisava fazer ou como fazê-lo. Estou executando o RedHat e preciso atualizar o pacote CA. O que preciso fazer para atualizar meu pacote CA no RedHat?
fonte
A maneira recomendada de fazer isso nos sistemas RHEL 6+ é usar a ferramenta update-ca-trust , que agora está instalada por padrão.
Portanto, você só precisa soltar seu arquivo crt na
/etc/pki/ca-trust/source/anchors/
e executar a ferramenta. Trabalho feito. Isso é seguro, você não precisa fazer backups. A página do manual completo pode ser encontrada aqui: https://www.mankier.com/8/update-ca-trustfonte
O RHEL fornece os certificados de CA da Mozilla como parte do
ca-certificates
pacote (instale-oyum
se ainda não estiver instalado). Para dizer ao cURL para usá-los, use o--cacert
parâmetro assim.fonte
yum install ca-certificates
e conseguiNo package ca-certificates available
ca-certificates.noarch 0:2014.1.98-70.0.el7_0
- infelizmente não resolvi meu problema, mas pensei em adicionar essas informações.Provavelmente depende de qual versão do Redhat. Você pode encontrar qual pacote realmente atualiza o arquivo fazendo:
Meu resultado foi mostrar que o openssl-0.9.8e-12.el5 precisa ser atualizado.
Se não houver certificados atualizados em sua distribuição, você deverá atualizar manualmente, conforme a resposta de Nada.
fonte
Desde o comentário de Dan Pritts, a Red Hat atualiza os pacotes de certificados para versões RHEL suportadas com mais frequência; você pode ver isso facilmente no log de alterações do pacote. Os certificados do RHEL 6 foram atualizados duas vezes em 2013 e duas vezes em 2014.
Todas as distros RHEL e relacionadas / clone / derivadas fornecem um arquivo de pacote em
/etc/pki/tls/certs/ca-bundle.crt
e o mesmo arquivo em/etc/pki/tls/cert.pem
(em distros mais antigascert.pem
é um link simbólicoca-bundle.crt
; em distros mais recentes, ambos são links simbólicos para uma saída de arquivoupdate-ca-trust
).No RHEL 6 e mais recente, o pacote faz parte do pacote 'ca-certificates'. No RHEL 5 e versões anteriores, faz parte do pacote 'openssl'.
No RHEL 6, com a atualização https://rhn.redhat.com/errata/RHEA-2013-1596.html e em qualquer RHEL mais recente, o sistema 'certificados do sistema compartilhado' está disponível (você deve executar
update-ca-trust enable
para habilitá-lo) e o melhor O método é o dado pelo lzap. Um benefício desse sistema é que ele funciona para aplicativos baseados em NSS e GnuTLS e também em aplicativos baseados em OpenSSL. Note que você também pode desconfiar um certificado, colocando-o no diretório/etc/pki/ca-trust/source/blacklist/
.No RHEL 5 e mais antigo (e no RHEL 6, se você não deseja usar o novo sistema), você pode confiar em CAs extras colocando seus arquivos de certificado formatados em PEM com a extensão
.pem
em / etc / pki / tls / certs e em execuçãoc_rehash
(também pode ser necessárioyum install /usr/bin/c_rehash
) Isso funcionará apenas para softwares que usam armazenamentos confiáveis padrão do OpenSSL. É melhor do que editar ou substituir o arquivo do pacote configurável, pois permite que você continue recebendo atualizações oficiais no arquivo do pacote configurável.O software que usa diretamente um dos locais de arquivo do pacote configurável (em vez de solicitar ao OpenSSL para usar os armazenamentos confiáveis padrão do sistema) não respeitará a alteração; se você possui esse software, está impedido de editar o arquivo do pacote (ou melhorar o software). O software que não usa o OpenSSL não respeitará o certificado adicionado.
fonte
Eu só tinha que fazer isso em uma caixa antiga RHEL5. Eu bati no catch 22 ... o curl rejeitaria o download https porque os certificados na máquina eram muito antigos para validar os certificados curl.haxx.se.
Usei a opção --insecure do curl para forçar o download do https. (Sim, eu sei ... é "inseguro".)
fonte
Para o RHEL 6 , consegui corrigir isso atualizando e reinstalando o pacote CA certs mais recente da Red Hat:
(No meu caso, isso foi suficiente para permitir a confiabilidade do certificado de assinatura "Let's Encrypt Authority X3" mais recente).
fonte