4

我创建了一个自签名证书,用于测试我的 Web 应用程序和 SQL Server 之间的加密。

尝试使用“Encrypt=Yes;”查询数据库时 在连接字符串中,我收到以下消息:

与服务器成功建立连接,但在登录前握手期间发生错误。(提供者:SSL 提供者,错误:0 - 证书链是由不受信任的机构颁发的。)

背景
当我第一次尝试从管理工作室进行加密连接时,我收到了相同的消息。通过将自签名证书安装到我的受信任的证书颁发机构中解决了这个问题。

问题
有没有办法让 ASP.NET 像我的用户帐户一样信任证书?

4

2 回答 2

3

好的,正确的答案在于将自签名证书添加到证书存储中。


通过双击服务器上的 .cer 文件安装证书的错误方式
- 这只会为当前登录的用户添加证书,这就是模拟在某些情况下起作用的原因。


使用 CertMgr.exe 安装证书的正确方法。
- 您可以在 Windows SDK 中找到 CertMgr.exe,或者显然在 Visual Studio 2005 的 bin 文件夹中。它不在VS2008中。
- 您必须在本地计算机管理员帐户下运行 CertMgr.exe 。具有本地管理员权限的域帐户将不起作用
- 运行 CertMgr.exe 以将证书添加到本地计算机受信任的发布者存储,方法是运行以下两个命令:
- certmgr /add Your.Certificate.Filename.cer /s /r localmachine root
-certmgr /add Your.Certificate.Filename.cer /s /r localmachine trustedpublisher

另请注意,在引用证书文件名时不能使用通配符。(/add *.cer 将失败。)

于 2009-12-02T05:00:33.620 回答
0

在我的本地开发机器上使用模拟工作:( <identity impersonate="true"/>在我的 web.config 的 system.web 中)

从而确保当 ASP.NET 连接到数据库时,它使用我的用户凭据,并且我的用户信任自签名证书。

注意 - 如果尝试在开发服务器上查看站点,则会失败。

于 2009-12-01T07:40:58.720 回答