c# - 使用自签名证书的证书身份验证

标签 c# web-services authentication webclient ssl-certificate

我有一个客户端应用程序(Windows 服务),它向 Web 服务发送请求 (WebClient.UploadString())。我已经通过 IIS 创建了一个证书。这是我在发送请求之前附加到 WebClient 的。但是,我收到以下消息:

The remote certificate is invalid according to the validation procedure.

我相信这是指服务器的证书无效,但我不确定让客户端信任服务器的最佳方式。 Eventaully,此 Web 服务将安装在许多服务器上,Windows 服务也是如此,因此我无法将证书附加到一台计算机上。有什么想法吗?

最佳答案

我不知道你的确切情况/设置,但这里有一些关于使用自签名证书的一般信息。

如果您想使用自签名证书,您需要将该证书添加到服务器的受信任根证书库中。

基本上服务器不信任用于签署您的证书的证书,这是证书本身,因为它是自签名的。

作为替代方案,您可以创建自己的根证书并将其添加到服务器的受信任根,然后使用它来签署其他客户端证书。这将使它变得更容易,因为您不必在服务器上安装每个客户端证书,只需安装用于签名的根证书。

当然,您始终可以从公司(GoDaddy、Verisign 等)购买证书。这些将由已经受信任的证书签名。

此外,可能有绕过检查的方法,但您可能不想这样做。

关于c# - 使用自签名证书的证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551926/

相关文章:

c# - 如果方法完全返回,请指定 NotNull

c# - 如何在CheckedListBox中显示一些记录

c# - 将类型传递给 C# 中的扩展?

javascript - 由于 CORS 导致 Satellizer 登录错误

php - 创建自动登录用户的第二个登录页面

c# - 创建字符的方法

c# - 从 CRM 2011 插件调用 Web 服务

ios - 没有apns可以使用聊天服务吗

java - 在请求的方法中访问 SOAP 消息头

ios - 如何从我的应用程序注销并转到初始登录 View ?