gpt4 book ai didi

c# - 如何验证远程 ssl 证书?

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:31 25 4
gpt4 key购买 nike

我想验证远程 SSL 证书。

我有一个 X509Certificate2 的实例并通过以下方式访问它:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.paypal.com/de/webapps/mpp/home");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
X509Certificate cert = request.ServicePoint.Certificate;
X509Certificate2 cert2 = new X509Certificate2(cert);
byte[] rawdata = cert2.RawData;
MessageBox.Show(cert2.GetNameInfo(X509NameType.EmailName,true));

但我现在怎么知道它真的是我的证书?

那么我现在如何验证它呢?如果我做:

虚拟代码:

if(Certificate.URL = "MYSAFEURL.COM") {//确定}

有人可以“修改”我的 .exe 中的字符串以将 MYSAFEURL 更改为 whatever.com

那么有什么方法可以100%确定证书是真的吗?

最佳答案

您可以在 URL 上签名

 if((Hash(Certificate.URL) = Decrypt("UrlSignature")) {//OK}

With "UrlSignature" = Encrypt(Hash("MYSAFEURL.COM"))

哈希可以是 SHA256

加密和解密是类似RSA的非对称加密

你用私钥加密

你用公钥解密

关于c# - 如何验证远程 ssl 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13513379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com