Schlüssel-Generierung Anforderungen für die TLS-ECDHE-ECDSA-AES128-GCM-SHA256

Ich Frage mich, ob es minimum-key-generation-Anforderungen für ECDHE-ECDSA-AES128-GCM-SHA256-und ECDHE-ECDSA-AES128-GCM-SHA256? Ich werde versuchen, eine TLS-client-und-server mit einer der oben genannten algorithmen miteinander zu verbinden und immer wieder erhalten 'keine gemeinsame cipher-Fehler". Erstellt habe ich eine CA für die Signierung von client-und server-certs, und versucht, den Anschluss mit nur openssl und auch in node.js. Ich bin mit den cliengt und server auf localhost (127.0.0.1) zu beseitigen alle anderen möglichen Probleme.

Hier ist, was ich bisher getan habe:

CA-Schlüsselpaar-Erzeugung:

  $ openssl genrsa -out ca-key.pem 4096
  $ openssl req -new -x509 -days 365 -key ca-key.pem -out ca-cert.pem

Client - /Server-Schlüsselpaar-Erzeugung:

  $ openssl genrsa -out server-key.pem 4096
  $ openssl req -new -key server-key.pem -out server-csr.pem
  $ openssl x509 -req -days 365 -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem 

  $ openssl genrsa -out client-key.pem 4096
  $ openssl req -new -key client-key.pem -out client-csr.pem
  $ openssl x509 -req -days 365 -in client-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem

War ich ursprünglich versucht, eine Verbindung zu einem node.js server von der Befehlszeile aus (tls.createServer() mit den Optionen: - Verschlüsselungen: 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256'), sondern zu eliminieren Knoten Verdacht fiel ich zurück zu openssl für die client-und server-Erstellung.

Den folgenden Kommandos eine korrekte Verbindung für client und server und Staaten ist es, mithilfe einer Chiffre von "New, TLSv1/SSLv3, Cipher ist ECDHE-RSA-AES256-GCM-SHA384":

$ openssl s_server -accept 8888 -cert server-cert.pem -key server-key.pem -pass stdin -CAfile ca-cert.pem  -state
<password entered here>

$ openssl s_client -connect 127.0.0.1:8888 -cert client-cert.pem -key client-key.pem -pass stdin -CAfile ca-cert.pem -state
<password entered here>

Mit der gemeinsamen Chiffre Informationen wie folgt:

Shared ciphers:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-R
SA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES2
56-SHA:SRP-DSS-AES-256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:DHE-DSS-AES256-GCM-SHA384
:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-A
ES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:ECD
H-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH
-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES256-SHA:AES256-GCM-SHA384
:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES
-CBC3-SHA:SRP-DSS-3DES-EDE-CBC-SHA:SRP-RSA-3DES-EDE-CBC-SHA:EDH-RSA-DES-CBC3-SHA
:EDH-DSS-DES-CBC3-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-DES-CBC3-SHA:DES-CBC3-SHA
:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA2
56:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:SRP-DSS
-AES-128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:DHE-DSS-AES128-GCM-SHA256

Die folgenden Befehle funktionieren NICHT, wenn ich geben Sie eine Ziffer auf dem server oder dem client und dem server. Beachten Sie, dass die ECDHE-ECDSA-AES128-GCM-SHA256 cipher ist gelistet als freigegebenes in der obigen Liste.

$ openssl s_server -accept 8888 -cert server-cert.pem -key server-key.pem -pass stdin -CAfile ca-cert.pem -cipher ECDHE-ECDSA-AES128-GCM-SHA256
<password entered here>

<< Server output after client connection attempt >>
Using default temp DH parameters
Using default temp ECDH parameters
ACCEPT
ERROR
2674688:error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher:s3_srvr.c:1353:
shutting down SSL
CONNECTION CLOSED
ACCEPT


$ openssl s_client -connect 127.0.0.1:8888 -cert client-cert.pem -key client-key.pem -pass stdin -CAfile ca-cert.pem -cipher ECDHE-ECDSA-AES128-GCM-SHA256
<password entered here>

<<client output after connection attempt>>
CONNECTED(00000003)
2674688:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:708:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 166 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

Hat jemand irgendwelche Ideen? Vielen Dank im Voraus!

  • Welche version von openssl verwenden Sie? openssl-version
  • Ich bin mit OpenSSL 1.0.1 14 Mar 2012
  • Auch sicher sein, zu verwenden "benannte Kurve". Für die details finden Sie unter Elliptic Curve Cryptography | Named Curves auf die OpenSSL-wiki.
Schreibe einen Kommentar