如何使用c++项目的libwebsockets库将私有ssl密钥从HSM(alogorithm pkcs11)传递到启用ssl的WebSocket服务器[关闭]

t9aqgxwy  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(323)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
10天前关门了。
Improve this question
我试图在我的c项目中创建一个WebSocket客户端。我试图使用libwebsockets库来实现相同的功能。WebSocket服务器启用SSL。我通过硬编码SSL证书和密钥来实现这一点。现在我需要从支持pkcs 11格式的HSM获取私钥。
Libwebsockets没有内置支持pkcs 11。我没有看到太多的文档/帮助来执行这一步。我尝试探索optoki,但我无法得到明确的步骤来执行这一步。你有任何文档来执行这一步吗?
或者除了libwebsockets之外,还有其他库可以满足我的要求吗?
在我的c
项目中添加了libwebsockets依赖项。根据他们的文档和这里提供的一些示例https://github.com/warmcat/libwebsockets/tree/main/minimal-examples,我能够让它使用作为硬代码文件路径传递的证书。
添加了optoki库作为依赖项。这是为了pkcs 11支持将私钥设置为libwebsocket的ssl配置。但不确定如何操作。还集成了cryptoauth库以从HSM获取私钥。
有人能帮我整合吗?

1wnzp6jl

1wnzp6jl1#

首先,您需要了解在libwebsockets中使用什么库进行SSL。
一旦你弄清楚了这一点,那么你就可以设置/配置libwebsockets来使用OpenSSL。
我在它的github页面上看到:https://github.com/warmcat/libwebsockets
libwebsockets使用以下库支持TLS:mbedtls(包括v3),openssl(包括v3),browssl,boringssl,libressl
现在,例如,如果你想使用OpenSSL,那么有一个pkcs 11引擎可用于openssl,你可以配置它,然后在该引擎的配置中,你必须指定HSM的细节,所以在完成所有这些之后,执行SSL所需的内部加密将通过HSM完成。
一般来说,大多数HSM供应商都提供了pkcs 11库,您必须在engine_pkcs11(这是一个openssl引擎)的配置中指定:
https://developers.yubico.com/YubiHSM2/Usage_Guides/OpenSSL_with_pkcs11_engine.html
这是一个例子,你可以看到这种情况发生:
[pkcs11_section] MOBILE_PATH = /path/to/yubihsm_pkcs11.{so| dylib}

相关问题