我在向我的webService请求添加新的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没有要求ssl证书被发送nginx !!!!。
另外:当我使用PostMan或SoapUI时。我必须添加第三个密钥(密码)才能获得响应。 ex :Add certificate via postman
我的问题是如何在我的请求中添加第三个参数(密钥)?#。
还有另一种方法可以为我的请求实施证书???
答案 0 :(得分:0)
你可以使用那些整齐的小代码,让你做到这一点:
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;
答案 1 :(得分:0)
我浪费了大量时间来搜索如何在一次Rest调用中包含三个信息(Certificat.cer,certif.key和passphrase)。 解决方案很简单: