OpenSSL DTLS1发送服务器密钥交换:原因(50)

OpenSSL DTLS1发送服务器密钥交换:原因(50),openssl,Openssl,我在使用OpenSSL时遇到这样的错误: SSL\u接受:1410B032:错误:1410B032:SSLroutines:DTLS1\u发送\u服务器\u密钥\u交换:原因(50) 我想在字符串中获取此错误的原因,但函数ERR\u reason\u error\u string()返回null。这意味着在一系列理由中没有这样的理由 谁能对这个问题说些什么?这是什么问题?这个问题何时可能发生? 我不明白为什么 谢谢 嗯,它看起来像是错误报告库中的一个bug(如果我正确阅读了源代码) 谁能对这个

我在使用OpenSSL时遇到这样的错误:

SSL\u接受:1410B032:错误:1410B032:SSLroutines:DTLS1\u发送\u服务器\u密钥\u交换:原因(50)

我想在字符串中获取此错误的原因,但函数ERR\u reason\u error\u string()返回null。这意味着在一系列理由中没有这样的理由

谁能对这个问题说些什么?这是什么问题?这个问题何时可能发生? 我不明白为什么

谢谢

嗯,它看起来像是错误报告库中的一个bug(如果我正确阅读了源代码)


谁能对这个问题说些什么?这是什么问题?什么时候 这个问题可能会发生吗?我不明白为什么

DTLS1\u发送\u服务器\u密钥交换
用于
ssl/d1\u srvr.c
。例如:

SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE,SSL_R_ERROR_GENERATING_TMP_RSA_KEY);
以及:

但是,查看ssl/ssl.h和原因码,没有原因50。他们从100开始计数。从第2285行开始:

/* Reason codes. */
#define SSL_R_APP_DATA_IN_HANDSHAKE            100
#define SSL_R_BAD_ALERT_RECORD                 101
#define SSL_R_BAD_AUTHENTICATION_TYPE          102
#define SSL_R_BAD_CHANGE_CIPHER_SPEC           103

我想可能是TLS/DTLS警报。在这种情况下,50表示解码错误(参见第7.2节)。但我不认为这是问题所在,因为警报通常会正确报告

您是否有一个最小的测试用例来重现该行为?客户端使用的是什么版本的OpenSSL?服务器使用的是什么版本?这个问题发生在工作程序(服务器和客户机)的过程中,但是很难重现这种行为(目前我不能这么做)。OpenSSL的版本是1.0.0。服务器使用相同的版本。真有趣。当这个问题发生时,当其他客户机想要连接到日志中的服务器时,我看到:Peer突然断开连接。根据代码,这个日志是在没有错误的情况下编写的,但是服务器和客户端之间的连接也会发生一些错误。它是UDP。从来没有联系。我也试着在代码中找到这个原因,但实际上没有这样的原因代码。我忘了写,OpenSSL与重写的stunel一起使用。但是stunel对这个问题的发生有什么影响呢?Stunel导致了OpenSSL的功能,因此在某些时刻,它可能会在参数中传输一些错误的值。但是什么是错误的值可以被传输?在哪里?在什么地方?
SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE,SSL_R_MISSING_TMP_RSA_KEY);
/* Reason codes. */
#define SSL_R_APP_DATA_IN_HANDSHAKE            100
#define SSL_R_BAD_ALERT_RECORD                 101
#define SSL_R_BAD_AUTHENTICATION_TYPE          102
#define SSL_R_BAD_CHANGE_CIPHER_SPEC           103