gpt4 book ai didi

c++ - 如何在 C++ gSOAP 生成的类中使用 SSL

转载 作者:可可西里 更新时间:2023-11-01 18:39:18 25 4
gpt4 key购买 nike

我需要在 C++ 中使用 gsoap 库,我需要使用 https。文档说明了如何在 C 中使用 HTTPS,而不是在 C++ 中 (http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.20)。特别是,我在 soap_ssl_init(); 函数上有计算错误。我查看了/usr/lib/libgsoap* 文件并找到了 ligsoapssl++.a 文件并链接到它。此错误已消失,但我收到 error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed。这意味着我需要调用 soap_ssl_client_context func,但 C++ 生成的类中没有。我该怎么办?

UPD:我已经自己解决了这个问题。但这是古怪的,非常古怪的方式。 gSOAP 生成继承自 struct soap 的 C++ 类,它包含以下属性:

BIO *bio;
SSL *ssl;
SSL_CTX *ctx;
unsigned short ssl_flags;
const char *keyfile;
const char *password;
const char *dhfile;
const char *cafile;
const char *capath;
const char *crlfile;
const char *randfile;
SSL_SESSION *session;

因此我们可以像在 OpenSSL 库中一样自行设置必要的属性(标志、参数)。在简单的情况下,调用一次 soap_ssl_init() 并设置 ssl_flags = SOAP_SSL_NO_AUTHENTICATION 就足够了。这个对我有用。如果有人知道更好的方法,我会很高兴看到。

最佳答案

这对我有用:

soap_ssl_client_context(m_proxy.soap, SOAP_SSL_NO_AUTHENTICATION, NULL, NULL, NULL, NULL, NULL);

其中 m_proxy 是使用 gSOAP 生成的客户端代理实例:

wsdl2h.exe -o MyWebservice.h ..\MyWebservice.wsdl
soapcpp2.exe -IC:\gsoap-2.8\gsoap\import -j MyWebservice.h -C -1 -SL

关于c++ - 如何在 C++ gSOAP 生成的类中使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6316007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com