Axe*_*den 5 encryption openssl sha1
我正在启动一个服务器:
openssl s_server -accept 8888 -cert server.de.crt -key server.de.key -state -cipher 'ECDHE-RSA-AES128-GCM-SHA256'
Run Code Online (Sandbox Code Playgroud)
然后使用s_client从同一台机器连接:
openssl s_client -connect localhost:8888 -state -cipher 'ECDHE-RSA-AES128-GCM-SHA256'
Run Code Online (Sandbox Code Playgroud)
给我:
3077933256:error:140740B5:SSL routines:SSL23_CLIENT_HELLO:no ciphers available:s23_clnt.c:469:
Run Code Online (Sandbox Code Playgroud)
但openssl密码告诉我它可用,密钥也应该有效.当我在apache 2.4的同一台机器上使用相同的密钥时,我的浏览器使用ECDHE-RSA-AES128-GCM-SHA256.所以我尝试使用chrome浏览器访问s_server:
https://machineip:8888
Run Code Online (Sandbox Code Playgroud)
服务器说:
CIPHER is ECDHE-RSA-AES128-GCM-SHA256
Run Code Online (Sandbox Code Playgroud)
所以s_server和密钥确实支持密码,但s_client不支持?为什么?
更多调查显示,只有使用SHA-1签名的密码似乎在客户端工作...
PS:我遇到过这个问题,因为我的node.js websocket服务器似乎也仅限于SHA-1密码.
\n\n\n您可以添加 -tls1_2 选项。我似乎记得 AES/GCM 密码是 TLS 1.1 或 TLS 1.2。如果是 14 之前的 Ubuntu,那就忘了吧。出于互操作原因,Ubuntu 在客户端中禁用 TLS 1.2。请参阅 Ubuntu 12.04 LTS:OpenSSL 下级版本,不支持 TLS 1.2。\xe2\x80\x93 jww 8 月 13 日 12:42
\n
jww是对的!
\n\n尽管我使用的是 Ubuntu 12.04 LTS,但它可以与 s_client 中的 -tls1_2 选项一起使用。也许这就是为什么我必须明确给出这个选项的原因。
\n