gpt4 book ai didi

c - 如何实现服务器名称指示(SNI)

转载 作者:太空狗 更新时间:2023-10-29 16:20:37 27 4
gpt4 key购买 nike

如何使用 C 或 C++ 在 OpenSSL 上实现服务器名称指示 (SNI)?

是否有任何现实世界的例子可用?

最佳答案

在客户端,您使用 SSL_set_tlsext_host_name(ssl, servername)在启动 SSL 连接之前。

在服务器端,稍微复杂一点:

  • 设置额外的 SSL_CTX()对于每个不同的证书;
  • 为每个 SSL_CTX() 添加一个服务器名回调使用 SSL_CTX_set_tlsext_servername_callback() ;
  • 在回调中,使用 SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name) 检索客户端提供的服务器名称.右图SSL_CTX使用该主机名,然后切换 SSL反对 SSL_CTXSSL_set_SSL_CTX() .

s_client.cs_server.c apps/ 中的文件OpenSSL 源代码分发的目录实现了这个功能,因此它们是了解应该如何完成的一个很好的资源。

关于c - 如何实现服务器名称指示(SNI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com