ubuntu OpenSSL KEYUPDATE和“SSL_key_update:wrong ssl version”

4zcjmb1e  于 2023-10-17  发布在  其他
关注(0)|答案(2)|浏览(128)

我使用的是Ubuntu 19.04,它附带了OpenSSL 1.1.1b。系统信息在下面。我在 * KEYUPDATE * 期间传输大型文档时遇到 * SSL_key_update:wrong ssl version *。
我正在启动我的服务器:

openssl s_server -accept 443 -cert /app/keys/cert.pem  -key /app/keys/private.key

我使用以下命令连接到服务器,使用AES 128:

openssl s_client -connect localhost:443 -cipher AES128-GCM-SHA256 -tls1_2

有时它会工作,特别是如果我发送的小于100 KB。然而,对于较大的转移,它通常会停止:

KEYUPDATE
140048546800768:error:1420310A:SSL routines:SSL_key_update:wrong ssl version:../ssl/ssl_lib.c:2090:

Others have seen this too,但他们似乎没有得出结论,哪个方面的配置是导致问题。
有趣的是,如果我在同一个1.1.1b服务器上运行一个旧的openssl 1.1. 0 h-fips s_client,当使用相同的-cipher AES128-GCM-SHA256 -tls1_2选项时,它工作得很好。事实上,它说:

Protocol  : TLSv1.2
Cipher    : AES128-GCM-SHA256

就像1.1.1b客户端一样...只是1.1.1b客户端似乎不工作。
问题是什么,我该如何解决?
以下是系统信息:

cli5# openssl version -a
OpenSSL 1.1.1b  26 Feb 2019
built on: Wed Apr 17 16:50:04 2019 UTC
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-FmdPCA/openssl-1.1.1b=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific
cli5# cat /proc/version
Linux version 5.0.0-17-generic (buildd@lcy01-amd64-015) (gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1)) #18-Ubuntu SMP Tue Jun 4 15:34:08 UTC 2019
cli5#
9rnv2umw

9rnv2umw1#

s_client是一个测试工具,它解释stdin上接收到的某些字母,以执行某些操作。KeyUpdate操作通过K/k触发。但是,KeyUpdate仅在协商TLSv1.3时才有意义。但是,您只在命令行上显式请求了TLSv1.2。在这些情况下使用K/k会导致“错误的ssl版本”错误。
您可以使用-ign_eof选项关闭交互式命令--尽管这确实会产生让s_client继续运行的副作用,即使在您通过管道传送的文件已经全部发送之后也是如此。

wqnecbli

wqnecbli2#

谢谢你,这个问题解决了。

-ign_eof

openssl s_client -starttls smtp -crlf -connect smtp.acbd.com:587 -ign_eof

相关问题