美文网首页
client_hello_cb、get_session_cb、s

client_hello_cb、get_session_cb、s

作者: 阿群1986 | 来源:发表于2019-06-26 19:28 被阅读0次

    在握手流程中,openssl 提供了几个回调函数接口让我们介入,最主要的接口有这么几个:
    client_hello_cb、get_session_cb、servername_cb、cert_cb。
    client_hello_cb 是收到 ClientHello 消息后执行的第一个回调,然后选择协议版本和选择密钥套件,接着调用 get_session_cb 来获取缓存的 Session,在这个阶段我们可以做分布式缓存的获取,解决分布式环境中Session ID复用率低的问题。

    openssl 解析完SNI后调用 servername_cb,这个回调主要用来切换 server 块配置和 SSL_CTX,实现多个 server 块不同 SSL 配置的问题,但可以看出协议版本和密钥套件早已经选择好了,在这个阶段做 SSL_CTX 切换对这两个配置并没有作用。

    最后调用 cert_cb 来切换证书,在这个阶段可以用 lua 介入,实现证书的热加载。

    要想实现协议版本和密钥套件域名定制的话,必须要在 client_hello_cb 这个阶段进行切换,但是 client_hello_cb 这个回调是新版 openssl 才支持。

    相关文章

      网友评论

          本文标题:client_hello_cb、get_session_cb、s

          本文链接:https://www.haomeiwen.com/subject/cxuhcctx.html