Certificado SSL funcionando no chrome, mas não openssl s_client ou curl

6

A atualização de cromos do Google para a versão 58 começou a invalidar meus certificados assinados há alguns dias. Estava reclamando sobre a falta de subjectAltNames . Eu fiz algumas pesquisas e tentei algumas sugestões (o que não funcionaria), mas depois encontrei este post , o único que eu poderia começar a trabalhar.

Ou eu fiz?

O Yay chrome agora aceita meus certificados recém-gerados e importados e eu estava a caminho,

até , eu acertei uma página no meu aplicativo PHP web que requer o carregamento de dados de outro micro-serviço web na mesma máquina dev.

stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:

Eu estive pesquisando e mexendo com isso por cerca de 4 horas e não consigo entender o que está acontecendo.

Pergunta

Por que o chrome está aceitando meu certificado? No entanto, ferramentas como curl , openssl s_client me deram unable to verify the first certificate ou invalid certificate ? Eu tentei passar o certificado como um parâmetro e ainda aparentemente inválido.

Depurando com curl e openssl passando o arquivo de certificado como um parâmetro continua a me dar este erro

SSL certificate verify result: unable to get local issuer certificate (20),

Acho que vou ficar completamente careca até o final do dia.

Notas

  • A máquina virtual é meu ambiente de desenvolvimento local, por isso tenho vários domínios com seus próprios certificados e chaves

  • A VM está no IP 192.168.33.10. o que significa que o chrome não está acessando o host local. No entanto curl e openssl s_clinet estão tentando acessar locahost

  • O servidor é uma VM que executa o Ubuntu 14.04

  • Certificado autoassinado instalado na máquina host com o MMC (console de gerenciamento da Microsoft)

  • O erro está definitivamente vindo da classe cliente tentando acessar um serviço da web.

  • Eu tentei passar o certificado como um parâmetro e ainda é aparentemente inválido.

  • Tenho plena consciência de que posso definir a verificação de peer como false ou passar --insecure a solicitação, mas não aprendo nada com isso.

  • Sessão SSL: Protocolo: TLSv1.2

  • executou sudo dpkg-reconfigure ca-certificates para atualizar certificados

  • executaram sudo update_ca_ccertificates

  • Eu alcancei o nível de frustração 9000

Reverter atualização

Eu gerenciei um novo certificado com a extensão v3 desativada e a opção Voltar ao chrome, informando que subjectAltName está ausente, mas o curl está funcionando. Eu preciso descobrir como genrificar os certificados que o curl e o cromo aceitarão.

    
por Jason Joslin 29.04.2017 / 06:58

1 resposta

2

Encontrou um tutorial mais claro que teve um openssl.conf muito mais simples. Nas minhas tentativas originais de adicionar SAN s, devo ter linhas extra não comentadas no conf que estavam adicionando informações extras aos certs causando conflitos. Seguiu este modelo e o meu certificado está a funcionar em todo o lado:

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = MN
localityName = Locality Name (eg, city)
localityName_default = Minneapolis
organizationalUnitName  = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Domain Control Validated
commonName = Internet Widgits Ltd
commonName_max  = 64

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = kb.example.com
DNS.2 = helpdesk.example.org
DNS.3 = systems.example.net
IP.1 = 192.168.1.1
IP.2 = 192.168.69.14

Obrigado por seus comentários @garethTheRed. Seus comentários me ajudaram a repensar minha abordagem para depurar esse problema.

Até mesmo começar um post aqui me ajuda a expor o que tentei e ajuda o cérebro a pensar em mais soluções possíveis.

    
por 29.04.2017 / 11:39