【发布时间】:2016-09-12 14:47:37
【问题描述】:
我使用的是 OpenSSL 1.0.2g。在我的客户端中,我想完全禁用 SSL 会话恢复(出于测试目的)。
我在连接之前,在创建 SSL_CTX 之后:
SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
SSL_CTX_set_options(ctx, SSL_OP_NO_TICKET);
但我在流量捕获中看到的是,我的客户端总是通过发送非空会话 ID 进行会话重用。并且服务器确实接受它。
如何完全禁用 SSL 会话恢复?
更多扩展代码sn-p:
SSL_CTX *ctx = NULL;
ctx = SSL_CTX_new(SSLv23_client_method()))
SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
SSL_CTX_set_options(ctx, SSL_OP_NO_TICKET);
SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL);
SSL_CTX_set_verify_depth(ctx, 0);
SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
我做错了吗?缺少任何必需的步骤?
【问题讨论】:
-
ldd <your prog>返回什么?我问的原因是许多 distors 提供 OpenSSL 1.0.1。尽管您正在针对 OpenSSL 1.0.2 进行编译和链接,但在运行时您可能会获得 1.0.1 的低级负载。 OpenSSL 1.01。和 1.0.2 是二进制兼容的,所以你可能永远不会知道其中的区别。
标签: session authentication ssl openssl