Volevo testare la connessione TLS 1.0 con il cifrario EDH-RSA-DES-CBC3-SHA.Errore "No CIP condiviso" con EDH-RSA-DES-CBC3-SHA
I test con openssl s_server e s_client. Funziona bene. Connessione e scambi di dati vanno bene.
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
Ora, ho un altro semplice codice server OpenSSL. Con questo e s_client la connessione non riesce con il server lanciando il seguente:
3077613304:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:s3_srvr.c:1361
ho verificare che le librerie che s_server/uso s_client e il mio uso applicazione server sono gli stessi come segue:
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
Tuttavia, per altre crittografie come AES128-SHA, la connessione da s_client all'applicazione server è soddisfacente.
Ecco come ho creato ctx
nel mio codice del server:
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;
}
Perché la mia applicazione server vomitare 'No condiviso cifra' di errore e s_server va bene con lo stesso cliente?
hai impostato i parametri 'DH' per il' ctx'? guarda questo http://linux.die.net/man/3/ssl_ctx_set_tmp_dh – cmidi
@ cmidi. Ehi, grazie! Non avevo impostato i parametri 'DH'. Ho funzionato. Richiedi di pubblicare il tuo commento come risposta. Lo contrassegnerà come accettato. – Prabhu
Inserito, è possibile aggiornare la risposta in base alla propria esperienza – cmidi