Windows服务器中的自签名证书

时间:2011-04-25 15:15:08

标签: c# ssl ssl-certificate

我有一个C#控制台应用程序,它使用我网络之外的Web服务。我被告知Web服务使用SSL的自签名证书。我不熟悉证书,我想知道我需要在.net / windows服务器环境中做些什么。

感谢。

2 个答案:

答案 0 :(得分:4)

默认情况下,您的应用程序不会将自签名证书视为有效,因为没有可信任的第三方验证证书。通常,您会在测试服务器上看到自签名证书,您可以找到有关自签名证书与签名证书here的更多信息。

如果您在调用Web服务时遇到问题,则需要在运行应用程序的计算机上安装证书,或创建可用于告知应用程序接受自签名的自定义验证程序证书。从.NET 2.0开始,通过在ServicePointManager.ServerCertificateValidationCallback属性上指定自定义方法来完成自定义SSL验证。

可以在此处找到使用ServerCertificateValidationCallback属性的示例: http://weblogs.asp.net/smehaffie/archive/2009/09/10/calling-web-services-that-use-self-signed-certificates.aspx

答案 1 :(得分:3)

这是一个很大的问题,特别是关于X.509安全性。通常使用自签名证书,您必须导入用于将此证书(通常是应用程序使用的自签名CA)签名的初始CA导入密钥环(以确保您连接到正确的服务器)。这通常是必需的,因为如果证书由已知且受信任的CA签名或与密钥环中的现有证书匹配,则客户端应用程序将检查连接。

在C#中,您可以查看System.Net.Security namespace,尤其是SSlStream类以获取更多详细信息。

如果您需要在密钥环中导入证书,则可以使用命令行the GUI"Certutil.exe"使用各种界面从various APIs访问密钥环。