Centos7 não confia em certificado emitido por deixa encriptar

3

Eu tenho o servidor nginx do apache sendo executado com o https: // configurado corretamente com o certificado letsencrypt. Eu posso conectar com o firefox, chrome, ou seja. Todos eles relatam conexão como segura. No entanto centos7 e ubuntu 14.04 relata erro de certificado:

wget https://gitlab.timeless.cz:8443

Resolving gitlab.timeless.cz (gitlab.timeless.cz)... 82.100.8.23
Connecting to gitlab.timeless.cz (gitlab.timeless.cz)|82.100.8.23|:8443... connected.
ERROR: cannot verify gitlab.timeless.cz's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3’:
  Unable to locally verify the issuer's authority.

De acordo com o link , a página está correta.

Saída de

openssl s_client -connect gitlab.timeless.cz:8443

é

CONNECTED(00000003)
depth=0 CN = gitlab.timeless.cz
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = gitlab.timeless.cz
verify error:num=27:certificate not trusted
verify return:1
depth=0 CN = gitlab.timeless.cz
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/CN=gitlab.timeless.cz
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---

mas deve ser assim, para o qual isso está funcionando, wget e curl)

CONNECTED(00000003)
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/CN=bk1.timeless.cz
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---

Eu também tenho alguns servidores apache, que funcionarão bem com certificados que permitem criptografar. Quero dizer, por wget ...

Não sei por que isso está funcionando nos navegadores, mas não no cli.

Editar:

Estou usando o gitlab instalado do pacote omnibus no Ubuntu executando o nginx incluído na porta http 8080 e https 8443. Ele tinha certificados auto-assinados instalados por padrão.

Em seguida, instalei o apache (portas padrão 80.443) e configurei-o usando o utilitário letsencrypt-auto. O https funciona bem, confiável por todos.

Primeiro tentei configurar o apache para finalizar o tráfego https e froward para o nginx não criptografado (porta 8080). Basicamente funcionou, mas tive problema para logar e clonar. O que torna inutilizável.

Em segundo lugar, tentei vincular permite criptografar certificados gerados para o apache no nginx, mas há apenas arquivos .crt e .key em / etc / gitlab / ssl. Então eu não sei como incluir o certificado de corrente. Estranho é que os navegadores estão felizes sem isso, mas wget, git e curl falham.

Hoje encontrei

link

e conseguiu consertar minha primeira solução. Isso me ofereceu porque recebo certificados atualizados automaticamente e posso usar porta padrão para o gitlab e, finalmente, posso usar um ip para vários serviços.

Resolver a segunda solução é incluir a cadeia no nginx, mas ela é incluída no pacote giltab, portanto, a configuração normal não se aplica.

    
por Pavel Niedoba 21.07.2016 / 18:19

3 respostas

4

Recentemente, tive um problema em que um sistema C7 não atualizava alguns pacotes porque o certificado remoto não era confiável. Eu poderia verificar isso usando o wget. Depois de algumas pesquisas e arranhões, decidi reinstalar o pacote de certificados do CA

yum reinstall ca-certificates

Isso resolveu meu problema. Tente reinstalar o pacote ca-certificates no sistema em execução.

    
por 22.07.2016 / 01:25
3

Como sua própria saída de openssl, o servidor web (é o apache ou o nginx? um pouco incerto na sua pergunta) erra o certificado da cadeia intermediária. Você precisa da configuração SSLCertificateChainFile no apache

A saída de ssllabs está correta porque você está testando a porta 443, que funciona usando wget ou curl. Você não tem permissão para testar outras portas que não sejam 443 na ferramenta sslabs.

    
por 22.07.2016 / 06:53
3

No REDHAT 7 / CentOS 7 / Oracle Linux 7:

Instale o certificado no seu ambiente.

  1. Faça o download do certificado PEM ativo de: link em / etc / pki / ca-trust / source / anchors
  2. Executar: sudo update-ca-trust

Isso é tudo!

    
por 05.01.2018 / 01:07