所以我尝试修改第三方(libtorrent)以仅接受 TLS 1.2 协议(protocol)。
SSL 上下文设置的一部分:
boost::shared_ptr<context> ctx = boost::make_shared<context>(boost::ref(m_ses.get_io_service()), context::tlsv12)
ctx->set_options(context::default_workarounds
| boost::asio::ssl::context::no_sslv2
| boost::asio::ssl::context::no_sslv3
| boost::asio::ssl::context::no_tlsv1
| boost::asio::ssl::context::no_tlsv1_1
| boost::asio::ssl::context::single_dh_use);
但是,当我测试与 OpenSSL s_client 的连接时,它似乎仍然接受 tls 1.0 和 tls 1.1 连接。
我是不是做错了什么?
编辑:在选项中添加了“| boost::asio::ssl::context::no_tlsv1_1”。我意识到我指的是旧的升压引用指南。然而它并没有改变任何东西。
编辑:我刚刚意识到我没有提到此连接是双向/相互身份验证连接。不确定这是否会改变任何事情。
最佳答案
asio::ssl::context 中没有 TLS1.2 常量。但您可以使用 native openssl API 来执行此操作:
#include <openssl/ssl.h>
long ssl_disallowed = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2;
ssl_disallowed &= ~SSL_OP_NO_TLSv1_2;
SSL_CTX_set_options(ctx.native_handle(), ssl_disallowed);
关于ssl - boost::asio 无法仅接受 TLS 1.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31005745/