ECDHE-ECDSA-AES128-GCM-SHA256 ve ECDHE-ECDSA-AES128-GCM-SHA256 için minimum anahtar oluşturma gereksinimleri olup olmadığını merak ediyordum? Ben birbirine bağlamak ve 'hayır paylaşılan şifre hataları' almaya devam etmek yukarıdaki algoritmaları birini kullanarak TLS istemci ve sunucu almak için çalışıyorum. İstemci ve sunucu sertifikaları imzalamak için bir CA oluşturdum ve sadece openssl ve node.js. ile bağlantı kurmayı denedim. Diğer olası sorunları ortadan kaldırmak için localhost (127.0.0.1) üzerinde cliengt ve sunucu çalıştırıyorum.TLS için temel oluşturma gereksinimleri ECDHE-ECDSA-AES128-GCM-SHA256
CA anahtar çifti oluşturma:
$ openssl genrsa -out ca-key.pem 4096
$ openssl req -new -x509 -days 365 -key ca-key.pem -out ca-cert.pem
Sunucu/İstemci anahtar çifti oluşturma: Burada
şimdiye kadar yapmış budur$ 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
Başlangıçta bağlanmaya çalışıyordu
bir node.js komut satırından sunucusu (tls.createServer() seçenekleri ile: şifrelere: 'ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-GCM-SHA256'), ama düştü düğüm şüpheyi ortadan kaldırmak için açmak için geri dön Hem istemci hem de sunucu oluşturma için ssl.
Aşağıdaki komutlar DOĞRU istemci ve sunucu için bağlanmak ve onu bir şifre kullanıyor devletler "Yeni, TLSv1/SSLv3, Şifreleme ECDHE-RSA-AES256-GCM-SHA384 olduğunu": With
$ 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>
Ben sunucuda bir şifre veya istemci ve sunucu belirtirken aşağıdaki komutlar çalışmaz OLMAYAN
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
şu şekildedir: şifre bilgileri paylaştı. Yukarıdaki listede paylaşılan olarak ECDHE-ECDSA-AES128-GCM-SHA256 şifreleme listelenen unutmayın.
$ 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
---
Herhangi bir fikri olan var mı? Şimdiden teşekkürler!
Hangi sürümleri kullanıyorsunuz? openssl version –
OpenSSL 1.0.1 kullanıyorum 14 Mar 2012 – aspergillusOryzae
Ayrıca "adlandırılmış eğri" kullandığınızdan emin olun. Detaylar için [Elliptic Curve Cryptography | Adlandırılmış Eğriler] (https://wiki.openssl.org/index.php/Elliptic_Curve_Cryptography#Named_Curves) OpenSSL wiki'sinde. – jww