节点TLS票据重build连接

我在做nodejs的实验。 我正尝试使用TLS票证来恢复TLS会话。 所以我会在连接成功后让客户端保存掉TLS Ticket。 closures后,我希望它使用相同的TLS票证重新build立TLS连接。

我发现节点tls命令tlsSocket.getTLSTicket()但是我不知道如何使用它来重新build立连接,因为它是“只用于debugging”。

我想要的是从客户端获取TLSTicket的能力,并通过nodejs中的服务器中的TLSTicketKey手动validation它。

谢谢

花了比我应该有更多的时间后,这些是我发现:

  1. 似乎没有任何API或暴露的JavaScript函数可以让您validationTLSTickets。

通过会话票据重复使用会话可以直接使用,对于您的node.js,实现是完全透明的

https://strongloop.com/strongblog/improve-the-performance-of-the-node-js-https-server/

但是,正如您将在链接中看到的那样,可以手动处理与会话存储的会话(这明显违背了TLS票证的用途)。

  1. 节点使用OpenSSL提供的以下function来执行票证处理。

    SSL_CTX_set_tlsext_ticket_key_cb – 为会话票证处理设置callback

全部细节: https : //github.com/joyent/node/blob/d13d7f74d794340ac5e126cfb4ce507fe0f803d5/deps/openssl/openssl/doc/ssl/SSL_CTX_set_tlsext_ticket_key_cb.pod

它从这里完成: https : //github.com/joyent/node/blob/master/src/node_crypto.cc

  1. 当它收到有效的TLS票证时,节点不会发出resumeSession 。 以下GitHub问题描述了为什么并且是对Node的TLS票据实现细节的简单引用。

https://github.com/joyent/node/issues/5872