.net - 服务器修改了 SSL 证书 "Issued by"

标签 .net ssl certificate

我们有一个 .Net 应用程序连接到我们托管的服务器上的 Web 服务,并且我们在这些服务器上将 SSL 证书绑定(bind)到 https/443。有时这些 SSL 证书是自签名的,因此我们并不完全依赖 X509Certificate2.Verify() 方法和我们为 ServicePointManager.ServerCertificateValidationCallback 编写的方法中的 SslPolicyErrors.None 枚举,因为我们的证书并不总是有效。

我们有第二个步骤,检查哈希字符串的签名 (X509Certificate.GetCertHashString()) 并将其与“已批准”证书列表进行比较。这样,如果它是已知证书,我们可以为回调返回 true。

在我们的一个安装站点中,当连接到完全相同的 Web 服务器时,我们会得到一个不同的哈希字符串。在将 X509Certificate 对象上的每个属性打印到日志文件后,我发现连接时“颁发者”值不同。从他们用户的工作站到他们的网络硬件,然后到我们的服务器,一路上有些东西正在修改证书。当我们的应用程序验证证书时,首先它不再是受信任的机构,其次当它检查哈希字符串时,它不在批准列表中(更改颁发者似乎更改了哈希)。

任何人都可以提供有关他们如何做到这一点的任何想法吗?此外,知道如何在 .Net 中以编程方式执行此操作吗?

谢谢, 丹

最佳答案

是否有可能相关连接被企业代理拦截,如 bluecoatwebsense那是在 SSL session 中?

关于.net - 服务器修改了 SSL 证书 "Issued by",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11296767/

相关文章:

c# - 详细了解 .NET 的工作原理

c# - 转换使用任务的便捷方法

.net - 如何在 C++ 中使用 .net 自动接受无效的 SSL 连接证书?

SSL:了解自签名证书

ios - CSSMERR_TP_NOT_TRUSTED : WWDR certificate - this certificate was signed by an unknown authority

c# - 在 C# 中将时间拆分为两个变量

c# - 编写自己的异步方法

java - SSL 握手异常 : Received fatal alert: handshake_failure ( ignores ciphers)

apache - 如何处理 https TYPO3 后端中的 "non-https"(http) 站点

java - 通过命令行将证书添加到 JAVA > Signer CA