Gsoap 下使用HTTPS协议的Web Service

Gsoap 下如何使用HTTPS协议

这两天在网上找了许多,零零散散的比较坑。最后,尽然在gsoap的安装目录下找到了一个例子,完整过程都有。(还是要看官方自带的文档和例子啊

如在电脑目录下C:\gsoap-2.8\gsoap\samples\ssl



其中如何生存openssl密钥在README.txt中有说明,而具体的服务端、客户端例子在sslserver.c、sslclient.c文件中。

而这里要说明的是样例中生成密钥的脚本是Linux下的shell,而我需要在windows下生成,这里打开其中root.sh、cert.sh两个脚本,不难发现里面的命令也基本是openssl相关的命令(我这里用的是OpenSSL,没有使用GNUTLS)

这里列举下Linux->windows下的转换关系

root.sh:

openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem

openssl x509 -req -in rootreq.pem -sha1 -extfile openssl.cnf -extensions v3_ca -signkey rootkey.pem -out cacert.pem -days 1095

type cacert.pem rootkey.pem > root.pem

openssl x509 -subject -issuer -dates -noout -in root.pem

cert.sh:

openssl req -newkey rsa:1024 -sha1 -keyout clientkey.pem -out clientreq.pem
openssl req -newkey rsa:1024 -sha1 -keyout serverkey.pem -out serverreq.pem

 openssl x509 -req -in clientreq.pem -sha1 -extfile openssl.cnf -extensions usr_cert -CA root.pem -CAkey root.pem -CAcreateserial -out clientcert.pem -days 1095
openssl x509 -req -in serverreq.pem -sha1 -extfile openssl.cnf -extensions usr_cert -CA root.pem -CAkey root.pem -CAcreateserial -out servercert.pem -days 1095

type clientcert.pem clientkey.pem cacert.pem > client.pem
type servercert.pem serverkey.pem cacert.pem > server.pem

openssl x509 -subject -issuer -dates -noout -in client.pem
openssl x509 -subject -issuer -dates -noout -in server.pem

生成相关文件后,同样注意代码中调用service接口用到的函数参数,我这里列举下我的

客户端:

soap_ssl_client_context(&add_soap, SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_SSL_SKIP_HOST_CHECK , "client.pem", "1234", "cacert.pem", NULL,NULL)

服务端:

soap_ssl_server_context(&add_soap, SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION , "server.pem", "1234", "cacert.pem", NULL, NULL, NULL, argv[0])



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值