我一直在尝试实现一种安全的方法来验证通过安全证书调用基于.Net SOAP的Web服务的Web服务器。
我已在接收服务器上设置了证书颁发机构,允许我颁发我们已在接收服务器和呼叫服务器上安装的证书。我还将此证书颁发机构添加为调用服务器的证书根存储中的受信任机构。
我现在遇到的问题是,当我将IIS设置为“需要”证书时,我只能发送一个小数据集,一次25行,每行约25个字段,每个字符长100个字符。我发送的数据已经使用对称密钥加密。当我删除客户端证书的要求时,我可以发送的数据量大约为25000行。当客户端证书“必需”时,我得到
HTTP 413:请求实体太大
我最好的猜测是,要求双向打开非对称加密,使数据量呈指数级增长。我试过修改web.config,特别是
<httpRuntime targetFramework="4.5" maxRequestLength="20000000" executionTimeout="3600" />
但即使在数据集中发送50行,这似乎也没有效果。
我还想添加
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="100000"
但我不知道它到底在哪里。
我使用
发送客户端证书Dim S as new webmethodname.webmethod
Dim x509 As X509Certificate = X509Certificate.CreateFromCertFile("filelocation")
s.ClientCertificates.Add(x509)
我能想到的两个解决方案是
有关正确方法的任何建议,或者有关使用SSL和PKI从服务器到服务器幕后发生的具体信息,我们将不胜感激。