我正在关注本教程:https://www.gnu.org/software/libmicrohttpd/tutorial.html#Adding-a-layer-of-security

在有关ssl的部分中,提供了一个名为tlsauthentication.c的示例。这是源代码的链接...

https://github.com/ulion/libmicrohttpd/blob/master/doc/examples/tlsauthentication.c

不幸的是我无法运行该文件。守护程序永远不会启动。而是立即返回null。 (这以int main()的方式在源代码底部附近发生。)

必需的文件是我根据教程的说明在正确的位置创建的server.key和server.pem。

我发现了一个类似的问题,答案是OP编译时带有--no-https标志(或类似的东西),但我只是在默认设置下编译(我认为是./configure& make& make install)。

我想念什么?如何获得此文件以按预期方式提供https服务?

如果相关,我使用的是libmicrohttpd的最新稳定版本,我更新了gnutls(以防万一),并使用OSX El Capitan。

最佳答案

如果您是Windows用户,并且想将libmicrohttpd与SSL一起使用,则必须执行以下步骤:


在w32 \ common \ MHD_config.h中的MHD_config.h中添加“ #define HTTPS_SUPPORT 1”
下载libgnutls(MinGW编译版本)
通过从Visual Studio中执行lib.exe(打开cmd.exe,浏览到libgnutls的lib目录中,然后执行lib.exe来生成libgnutls的LIB文件,如下所示:“ C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ bin \ lib.exe“ /def:libgnutls-30.def / nologo / machine:x64)
将libgnutls的“ include”目录复制到libmicrohttpd Visual Studio项目文件下,并将其命名为“ gnutls”
将生成的libgnutls-30.lib,libgnutls-30.exp以及libgnutls-30.def复制到带有libmicrohttpd Visual Studio项目文件的文件夹中。
使用配置Debug-dll或Release-dll之一编译libmicrohttpd。具有-static的那些可能不再使用,因为这会违反LGPL2.1许可证(在使用SSL时会使用该许可证)。
将您的应用程序与生成的lib(即libmicrohttpd-dll.lib)链接,然后将libmicrohttpd-dll.dll以及所有libgnutls DLL(libgnutls-30.dll,...)复制到exe文件。

关于c - Libmicrohttpd和ssl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39928579/

10-08 22:54