2013-11-29 57 views
2

我尝试使用libwebsockets库开发带ssl的webscoket服务器。libWebscokets带SSL的服务器不要输入PEM密码短语

我可以在我的代码中硬编码PEM密码吗? 我阅读libwebsockets的所有文档,但我找不到这个。 这是创造的WebSocket服务器代码:

struct lws_context_creation_info info; 
memset(&info, 0, sizeof info); 
info.port = 7681; 
info.iface = interface1; 
info.protocols = protocols; 
info.ssl_cert_filepath = cert_path; 
info.ssl_private_key_filepath = key_path; 
info.ssl_cert_filepath = "./file.pem"; 
info.ssl_private_key_filepath ="./file.key.pem"; 

info.gid = -1; 
info.uid = -1; 
info.options = opts; 

context = libwebsocket_create_context(&info); 

我运行程序,我需要输入PEM密码短语。

回答

0

如果你使用OpenSSL,有两种方法来设置libwebsockets SSL会话的上下文。(libwebsockets V2.0)

  1. 您可以使用OpenSSL的API自己SSL_CTX结构做。

    SSL_CTX* ssl_ctx;

    /* set up ssl_ctx using OpenSSL APIs including below. */ SSL_CTX_set_default_passwd_cb_userdata(ssl_ctx, "passphrase"); SSL_CTX_set_default_passwd_cb(ssl_ctx, callback_function); // ...

    info.provided_ssl_ctx = ssl_ctx;

    通过这种方式,您可以自定义SSL上下文,只要你想。但是如果provided_ssl_ctx设置为NULL,libwebsockets不对ssl_ctx承担任何责任。所以你必须在整个过程中释放结构。


  • 请在其自身的处理中设置SSL_CTX libwebsockets。

    info.ssl_private_key_password = "passphrase";

    如果要修改更多SSL_CTX,你能做到在libwebsockets回调函数的原因LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS。 SSL_CTX将被传递到回调函数user变量

  • 相关问题