将带有密码密钥的证书 X509 添加到 Web 服务请求
Add Certificate X509 with passphrase key to Webservice request
我在向我的网络服务请求中添加新的 SSL 证书时遇到问题。
var client = new RestClient(tokenUrl);
string certif = String.Format("{0}/client.cer", CertifPath);
string key = String.Format("{0}/client.key", CertifPath);
if (File.Exists(certif) && File.Exists(key))
{
X509Certificate2 cert = new X509Certificate2(certif, key);
X509CertificateCollection collection1 = new X509CertificateCollection();
collection1.Add(cert);
client.ClientCertificates = collection1;
}
我收到回复:400 没有向 nginx 发送必需的 ssl 证书!!!!。
另外:当我使用 PostMan 或 SoapUI 时。我必须添加第三个密钥(密码)才能获得响应。 ex :Add certificate via postman
我的问题是如何在我的请求 c# 中添加第三个参数(密钥)?
还有另一种方法可以根据我的要求实施证书 ???
你能使用那段简洁的代码来让你做到这一点吗:
byte[] certBuffer = Helpers.GetBytesFromPEM(publicCert, PemStringType.Certificate);
byte[] keyBuffer = Helpers.GetBytesFromPEM(privateKey, PemStringType.RsaPrivateKey);
X509Certificate2 certificate = new X509Certificate2(certBuffer, password);
RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer);
certificate.PrivateKey = prov;
解法:
我浪费了很多时间来搜索如何在一次 Rest 调用中包含三个信息(Certificat.cer、certif.key 和密码)。
解决方案很简单:
- 证书对象非常灵活:我可以封装
使用 OpenSSL 在一个名为 (.pfx) 的证书中包含三个信息。
- 您可以通过以下方式安装 OpenSSL:http://slproweb.com/download/Win64OpenSSL_Light-1_1_0g.exe
- 在此命令之后:
openssl pkcs12 -export -out certificate.pfx -inkey client.key -in client.cer.
- 生成了一个新文件:certificate.pfx。
- 所以现在我可以轻松地包含我的新证书而不会出现任何错误:) .
我在向我的网络服务请求中添加新的 SSL 证书时遇到问题。
var client = new RestClient(tokenUrl);
string certif = String.Format("{0}/client.cer", CertifPath);
string key = String.Format("{0}/client.key", CertifPath);
if (File.Exists(certif) && File.Exists(key))
{
X509Certificate2 cert = new X509Certificate2(certif, key);
X509CertificateCollection collection1 = new X509CertificateCollection();
collection1.Add(cert);
client.ClientCertificates = collection1;
}
我收到回复:400 没有向 nginx 发送必需的 ssl 证书!!!!。
另外:当我使用 PostMan 或 SoapUI 时。我必须添加第三个密钥(密码)才能获得响应。 ex :Add certificate via postman
我的问题是如何在我的请求 c# 中添加第三个参数(密钥)?
还有另一种方法可以根据我的要求实施证书 ???
你能使用那段简洁的代码来让你做到这一点吗:
byte[] certBuffer = Helpers.GetBytesFromPEM(publicCert, PemStringType.Certificate);
byte[] keyBuffer = Helpers.GetBytesFromPEM(privateKey, PemStringType.RsaPrivateKey);
X509Certificate2 certificate = new X509Certificate2(certBuffer, password);
RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer);
certificate.PrivateKey = prov;
解法:
我浪费了很多时间来搜索如何在一次 Rest 调用中包含三个信息(Certificat.cer、certif.key 和密码)。 解决方案很简单:
- 证书对象非常灵活:我可以封装 使用 OpenSSL 在一个名为 (.pfx) 的证书中包含三个信息。
- 您可以通过以下方式安装 OpenSSL:http://slproweb.com/download/Win64OpenSSL_Light-1_1_0g.exe
- 在此命令之后: openssl pkcs12 -export -out certificate.pfx -inkey client.key -in client.cer.
- 生成了一个新文件:certificate.pfx。
- 所以现在我可以轻松地包含我的新证书而不会出现任何错误:) .