wget, certificados auto-assinados e um costume HTTPS
-
10-07-2019 - |
Pergunta
Por várias razões eu criei um servidor HTTP simples, e adicionou suporte SSL via OpenSSL. Estou usando certificados auto-assinados. IE, Firefox e Chrome feliz carregar o conteúdo contanto que eu adicionar o CA para os CAs raiz confiáveis.
No entanto, wget (mesmo quando usando o sinalizador --no-check-certificate
) relatórios:
OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Se eu executar o cliente OpenSSL contra o meu servidor usando:
openssl s_client -connect dnvista:82 -debug
eu voltar: verificar de erro: num = 19: auto certificado assinado na cadeia de certificados verificar retorno: 0 e depois
5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:
Do wget eo cliente OpenSSL simplesmente não trabalho com certificados auto-assinados?
UPDATE:
Para qualquer um que vem junto mais tarde, adicionando este código ajudou com o cliente OpenSSL e Firefox:
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
Solução
Eu chequei a página homem de wget
e --no-check-certificate
só parece afetar o certificado Servidor . Você precisa especificar o seu certificado auto-assinado como um certificado CA válida localmente.
Para fazer isso, especifique o certificado como --ca-certificate=...
em wget
e -CAfile
no caso s_client
.
Outras dicas
Você também pode instalar certificados CA raiz confiáveis ??em OpenSSL em uma das várias maneiras:
- Coloque o seu certificado CA em / etc PKI / TLS / certs ou diretório / equivalente, em seguida, criar um link baseado no hash de certificado. Consulte http://gagravarr.org/writing/openssl-certs/others. shtml # ca-openssl para mais detalhes.
- Anexar seu certificado CA para /etc/pki/tls/certs/ca-bundle.crt, /etc/pki/tls/cert.pem, ou pacote CA equivalente.