【发布时间】:2023-03-10 17:24:01
【问题描述】:
我有一段 .NET 代码在调用 HTTPWebRequest.GetRequestStream 时出错。这是错误消息:
底层连接已关闭: 无法建立信任关系 用于 SSL/TLS 安全通道。
我已经阅读了一些内容,表明我可能需要在运行代码的机器上获得证书,但我相信我拥有所有需要的证书...
这是我检查我是否拥有所需证书的方式:
- 使用 Firefox 访问网络服务。
- 查看正在使用的证书 通过查看来访问该 Web 服务 在安全信息通过 浏览器
- 导出证书
- 通过导入证书 控制面板中的 Internet 选项
这应该足够了吗?我仍然收到错误消息。
代码:
var request = (HttpWebRequest)HttpWebRequest.Create(requestUrl); //my url
request.Method = StringUtilities.ConvertToString(httpMethod); // Set the http method GET, POST, etc.
if (postData != null)
{
request.ContentLength = postData.Length;
request.ContentType = contentType;
using (var dataStream = request.GetRequestStream())
{
dataStream.Write(postData, 0, postData.Length);
}
}
更新:
添加一些我的证书的屏幕截图。如果有任何问题,请告诉我:
首先,我们有 Firefox 使用的证书:
接下来,根据 MMC,我们有什么在我的受信任的根证书中:
最后,根据 MMC,我们有我的中级证书:
这看起来对吗?
【问题讨论】:
-
如果您在 Fiddler 以 HTTPS 拦截模式运行时运行代码(工具 > Fiddler 选项 > HTTPS),问题会改变吗?
-
@Eric,没有。我刚试过,我得到了同样的错误
标签: .net asp.net security exception ssl-certificate