Não consigo obter o wget para usar os certificados do cliente. A documentação fala sobre o uso do sinalizador --certificate.
O uso do sinalizador de certificado é claro, eu o configurei para usar a versão PEM do certificado de cliente.
Mas quando eu me conecto, recebo o seguinte erro:
HTTP request sent, awaiting response... Read error (error:14094410:SSL routines:
SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_
READ_BYTES:ssl handshake failure) in headers.
Giving up.
Falha no SSL handshake significa que o cliente não forneceu um certificado de cliente correto. Ainda o certificado de cliente que eu uso, funciona em um navegador.
Nota: Quando eu desabilito a autenticação do cliente no servidor, o wget pode se conectar. Nota: O uso de curvatura é sugerido, mas eu gostaria de evitar a troca.
ssl-certificate
wget
Bart De Vos
fonte
fonte
Respostas:
Estudei uma semana sobre isso, finalmente com a ajuda que recebi desta página.
O comando que eu usei para conectar é:
fonte
Você tem certeza de que a autenticação de certificado de cliente SSL está funcionando no seu servidor?
Acabei de testar que posso pegar meu certificado (no formato PKCS12), convertê-lo em um arquivo de certificado e chave no formato PEM e usá-lo com o wget.
Posso provocar três condições de erro, nenhuma das quais corresponde ao que você está relatando:
Eu estou usando nginx; você não menciona o que está usando, por isso não tenho certeza se o Apache retornaria as mesmas respostas.
Sugiro que você pegue seu certificado e sua chave, combine-o no PKCS12 (ou apenas importe-o como PEM se o navegador suportar o formato) e garanta que tudo esteja funcionando primeiro nessa frente.
Se você já fez isso, talvez possa tentar em outra máquina para garantir que não seja algo estranho com a versão do OpenSSL que você está usando.
Por fim, tente usar o OpenSSL no modo s_client:
E veja se as coisas funcionam nesse nível. Nesse caso, algo está complicado com o wget e você pode querer reconstruí-lo ou reinstalá-lo. Caso contrário, o nível de saída de depuração poderá ajudá-lo a identificar o problema mais do que o resultado da depuração do wget.
fonte
Eu usei com sucesso o wget assim:
Observe o
--private-key option
. retenha.url tem https: //bla.bla.blaNo entanto, agora ele me solicita "Inserir senha do PEM:".
Se eu digitar a senha, ela funcionará bem, mas alguém sabe como contornar o prompt?
fonte
É possível que o wget esteja se conectando à porta 80? Esse erro é muito semelhante aos erros que recebo nos testes quando acidentalmente tive o HTTP ouvindo 80 e 443-wget tentando falar SSL e não obtendo a resposta desejada.
fonte
Obtenha uma captura de rede e carregue-a no Wireshark. Isso deve fornecer uma imagem mais clara do que está falhando no nível SSL / TLS.
fonte
Houve problemas com o SSLv3 em versões como 0.9.8.
Tente passar -no_ticket para openssl s_client ou se -ssl2 funcionar
fonte