有没有一种方法可以强制 svcutil.exe 忽略 SSL 证书问题?

4
我需要使用svcutil.exe为我生成代理类,但问题是该Web服务只能通过HTTPS访问,且SSL证书是自签名的。
如何强制svcutil.exe忽略此问题?

1
这并不是直接描述问题的情况,但 SSL 证书主机名不匹配(即在集群场景或 DNS 后缀等情况下)可以通过 svcutil.exe.config 解决,您只需要添加以下内容: <system.net> <settings> <servicePointManager checkCertificateName="false"/> </settings> </system.net> - Piotr Owsiak
5个回答

7

似乎有一件事情是有效的,就是在进行SVCUTIL请求时启动Fiddler并让其运行。Fiddler的证书有效且运行良好。


这确实帮了我。至少在@MattPll提出的建议下,确保选择了解密HTTPS选项(至少对我来说是有效的)。 - Mr Moose

6

+1 是为了使用 fiddler。您只需要转到 TOOLS > Fiddler Options 并勾选 Decrypt HTTPS。


我认为解密HTTPS的建议对于这个工作非常重要。它确实帮助了我。 - Mr Moose
适用于我。但愿我们的系统管理员能理解实现公钥基础设施的美妙之处。 - JJS

4
你可以先尝试浏览到https网站,忽略证书不受信任的警告,然后点击证书并安装它。这样应该会使你正在使用的机器信任该证书。然后再次尝试运行svcutil。

我本来想用一个“忽略问题”的开关,但最终我使用了你的解决方案。谢谢。 - Piotr Owsiak

0

您可以使用带有 --insecure 标志的 curl 命令将 wsdl 文件下载到本地,然后从该文件生成类。

curl --insecure "https://url_to_the_wsdl" >download.wsdl
svcutil.exe download.wsdl

随意根据需要修改文件名,添加必要的开关。


0

浏览到https网站,忽略警告,保存wsdl文件,并直接从wsdl生成客户端类


我实际上需要从另一个进程运行svcutil。Shiraz Bhaiji的解决方法很好用。我只是确保证书已安装,然后svcutil就可以正常运行了。 - Piotr Owsiak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接