Ich wollte TLS 1.0 Verbindung mit Chiffre EDH-RSA-DES-CBC3-SHA testen.'Kein gemeinsamer Chiffre' Fehler mit EDH-RSA-DES-CBC3-SHA
Ich teste mit openssl s_server und s_client. Funktioniert gut. Verbindung und Datenaustausch sind in Ordnung.
openssl s_server -accept 4433 -cert server.pem -key serverkey.pem -cipher EDH-RSA-DES-CBC3-SHA -tls1
openssl s_client -connect 127.0.0.1:443 -cipher EDH-RSA-DES-CBC3-SHA -tls1
Shared ciphers:EDH-RSA-DES-CBC3-SHA
Jetzt habe ich einen anderen einfachen OpenSSL-Server-Code. Mit diesem und s_client die Verbindung fehlschlägt mit Server wirft die folgenden:
3077613304:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:s3_srvr.c:1361
ich überprüfen, ob die Bibliotheken, die/s_client Nutzung und meine Server-Anwendung verwenden s_server gleichen sind wie folgt:
cat /proc/9515/maps | awk '{print $6}' | grep '\.so' | sort | uniq | grep -e ssl -e libcrypto
/usr/lib/libcrypto.so.1.0.1e
/usr/lib/libssl.so.1.0.1e
Allerdings ist für andere Chiffren wie AES128-SHA, Verbindung von s_client zu meinem Server-Anwendung ist in Ordnung.
Hier ist, wie ich einrichten ctx
in meinem Server Code:
SSL_CTX* InitServerCTX(void)
{
SSL_CTX *ctx = NULL;
SSL_library_init();
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
ctx = SSL_CTX_new(TLSv1_server_method());
SSL_CTX_set_cipher_list(ctx,"EDH-RSA-DES-CBC3-SHA"); // Returns 1
SSL_CTX_use_certificate_chain_file(ctx, "server.pem");
SSL_CTX_use_PrivateKey_file(ctx, "serverkey.pem", SSL_FILETYPE_PEM);
return ctx;
}
Warum wird meine Server-Anwendung erbrechen ‚Nein Chiffre geteilt‘ Fehler und s_server ist mit demselben Kunden gut?
Haben Sie die 'DH' Parameter für die' ctx'? betrachten Sie diese http://linux.die.net/man/3/ssl_ctx_set_tmp_dh – cmidi
@cmidi. Hey danke! Hatte keine "DH" -Parameter eingerichtet. Habe es funktioniert. Fordert Sie auf, Ihren Kommentar als Antwort zu veröffentlichen. Wird es als akzeptiert markieren. – Prabhu
Posted, Sie können die Antwort basierend auf Ihrer Erfahrung aktualisieren – cmidi