c# - 如何使用带有 ssl 的证书通过 https ://连接到 web 服务

标签 c# ssl ssl-certificate

我是这方面的新手...如何使用带有 ssl 的证书通过 https://连接到 web 服务?需要遵循的必要步骤是什么。我已经有一个已安装在远程服务器上的签名证书。

有什么想法吗?

我想在 C# 中执行此操作。我应该使用 OpenSSL.NET 吗?

亲切的问候,

埃里克·卡里霍

最佳答案

如果您使用的是 C#,HttpWebRequest 类有一个 clientCertificates 集合属性。简而言之,您在发送请求之前将您的证书添加到该集合中。

你会想做一些流程

  • 在您的机器 keystore 中安装证书(或者实际上您想要存储/分发客户端证书

在 C# 中:

  • 创建一个网络请求
  • 从 keystore 加载证书
  • 将证书添加到 clientCertificates 收藏发送请求

所以(抱歉,如果这不是 100%):

// instanstiate request
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requestUrl);

// access keystore, find your cert
X509Store keystore = new X509Store("My", StoreLocation.CurrentUser);
X509CertificateCollection certs = keystore.Certificates.Find(X509FindType.FindBySubjectName, "Name Of Cert", true);

// add cert to request object
req.ClientCertificates = certs;


// continue with preparing the request and submitting

关于c# - 如何使用带有 ssl 的证书通过 https ://连接到 web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822505/

相关文章:

docker - Nifi - SSLError CertificateError - 主机名 'dev.example.com'与 'nifi-node1'不匹配

c# - WPF动态数折线图

c# - 如何在来自 View 模型的异步 Web 客户端调用中使用进度条

c# - 分区 c# 上的 Nhibernate 行号

java - 如何在不重新启动的情况下更新 Spring Data Geode 连接中的 keystore (SSLContext)?

node.js - Socket.io SSL 错误

SSL 证书 - 并非所有 Web 浏览器都信任该证书

ssl - 用于数字商品的 Google Wallet API 是否需要 SSL 证书?

c# - 从 3.1.4 范围更新身份服务器 4 4.0.0 后,使用 Mongo DB 的 asp.net core 3 无效

java - trustAnchors 参数必须非空