与子进程共享SSL套接字

时间:2015-01-28 08:00:30

标签: ssl openssl

我正在一台需要支持wss://的服务器上工作。服务器需要处理websocket标头,以识别请求,然后可以决定将SSL上下文传递给工作进程。目前,服务器使用OpenSSL进行SSL通信,但据我所知,OpenSSL无法在进程之间共享安全套接字(在父进程中尝试使用SSL_SESSION,在子进程中尝试使用d2i_SSL_SESSION / SSL_CTX_add_session) - 参考:http://openssl.6102.n7.nabble.com/How-to-share-SSL-sessions-between-parent-and-child-process-when-doing-fork-exec-td11077.html

我正在寻找可能允许这种情况的其他SSL库,目前正在考虑NSS。

任何成熟的开源SSL库都可以实现吗?

2 个答案:

答案 0 :(得分:3)

在尝试使用libssl找到实现此目的的几个月后,我决定自己制作TLS。在没有理解和修改libssl(或libressl)的情况下,我发现无法实现此功能。我仍然认为是可能的,我只是没有办法找到方法。我从头开始实施了一个TLS库并将其放在github上。现在我有两个必需的函数tls_export_context和tls_import_context。

答案 1 :(得分:0)

  

任何成熟的开源SSL库都可以实现吗?

我认为在用户空间中实现的任何SSL库都是可能的,因为这样您将不断需要在多个进程之间共享单个SSL连接的状态。与此相反,底层TCP连接的状态在内核中进行管理,即使父进程和子进程打开了相同的连接,也只有一个状态。

我不知道任何未在用户空间中实现的SSL库。