Z różnych powodów stworzyłem prosty serwer HTTP i dodano obsługę SSL przez OpenSSL. Używam certyfikatów z podpisem własnym. IE, Firefox i Chrome ładnie ładują zawartość, o ile dodaję CA do zaufanych głównych urzędów certyfikacji.wget, samopodpisane certyfikaty i niestandardowy serwer HTTPS
Jednak wget (nawet przy użyciu flagi --no-check-certificate
) informuje:
OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Gdybym uruchomić klienta OpenSSL przeciwko mojego serwera przy użyciu:
openssl s_client -connect dnvista:82 -debug
wrócę: zweryfikować błąd: num = 19: certyfikat z podpisem własnym w łańcuchu certyfikatów Zweryfikowany zwrot: 0 , a następnie
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:
Czy wget i klient OpenSSL po prostu nie działają z samopodpisanymi certyfikatami?
UPDATE:
Dla każdego, który przychodzi wraz później, dodając kod ten pomógł z klientem OpenSSL i 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);
Witam. Widziałem już wiele takich komentarzy, "Wyłącz check-off" w tylu słowach. Jest to pomysł ** naprawdę _BAD_ **. Trochę jak wyścigi uliczne z łysymi oponami na mokrych drogach. Jestem rozczarowany, że ta odpowiedź ma znak "kleszcza". – will
: Zgadzam się, obrócenie czeku jest generalnie złym pomysłem. Moja odpowiedź sugeruje jeden ze sposobów udostępnienia certyfikatu CA klientowi, aby można było poprawnie przeprowadzić kontrolę. –