2013-11-29 53 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變量

  • 相關問題