1
23
PathToCertificate是什么类型的文件?如果它只是一个.cer文件,它将不包含证书的私钥,并且尝试将该证书用于SSL/TLS将失败。 但是,如果您有一个包含证书的公钥和私钥的pkcs7或pkcs12文件,您的代码将工作(如果私钥有密码,您可能需要使用带密码的重载)。 为了测试这个,我去了 http://www.mono-project.com/UsingClientCertificatesWithXSP 并按照这些说明创建了我的client.p12文件。我还使用httplistener创建了一个简单的https服务器进行测试。 然后我将以下程序编译成“client.exe”,运行方式如下:
其中client.p12是以前生成的pkcs12文件,“password”是我为证书的私钥设置的密码。
如果您想让我上传服务器代码和测试两边使用的证书,请通知我。 |
2
2
潜在的问题可能是SSL会话的缓存(schannel缓存)。只有第一个请求才能协商SSL握手。随后的请求将使用相同的会话ID,并希望服务器接受它。如果服务器清除sessionid,请求将失败,并出现403错误。要禁用本地SSL会话缓存(并为每个请求强制进行SSL协商),必须打开Windows注册表文件夹: [hkey_local_machine][system][currentcontrolset][control][securityproviders][schannel] 并添加名为clientcachetime(dword)的值为0的键。 这个问题在这里讨论: |
3
2
你有可能遇到至少两个问题… 第一。。。 除非使用密码访问,否则客户端证书文件不能包含私钥。您应该使用带有密码的PKCS 12(*.pfx)证书,以便您的客户机可以访问私钥。当打开证书时,客户端代码必须提供密码,因为其他人已经发布了证书。创建证书有几种方法,最简单的方法是使用以下命令行首先生成证书,然后使用MMC证书管理器导出证书私钥:
第二… 下一个问题是服务器端。服务器必须允许此证书。您有正确的逻辑,但是在线路的错误一侧,将这一行移动到处理请求的Web服务器。如果不能,则必须将上面保存的“.cer”文件保存到服务器,并将其添加到服务器计算机的信任列表中:
|
4
1
您需要证书的密码吗?如果是这样,则在构造函数中有一个字段。
|
user826955 · 使用节点。js使用CA证书验证X509证书 6 年前 |
NineBerry · 使用pure生成并签署证书请求。net框架 6 年前 |
user1115980 · Sylog ng证书问题 7 年前 |
Michel · 未安装分发证书/私钥 7 年前 |
Thomas Schneiter · 信任来自IIS的自签名证书 7 年前 |
kdragon · VBA-https响应文本解密 7 年前 |
Gulumal · WCF中基于证书的身份验证 7 年前 |