c#https使用带密码的crt和密钥文件进行呼叫

问题描述 投票:0回答:2

我有一个crt和密钥文件以及一个密码短语。

我通过Postman成功使用这些来调用外部API。我怎么在c#中这样做?

我看到使用Xcl9Certificate与httpclient的例子,但Idont看到构造函数的任何选项,我可以使用2个文件并设置密码短语

c# https httpclient x509certificate
2个回答
0
投票

.NET不会轻易为您做到这一点。

老实说,你最好的选择是使用类似OpenSSL的东西来粘贴证书并将其键入PFX。

如果您决定不这样做,答案现在将继续。

在没有证书的情况下,如何加载密钥并不缺乏问题,例如:

一旦你弄明白如何加载密钥,就会有密钥和证书,而且他们彼此不了解。有解决方案。

最安全,最简单的下一步:

如果您使用的是.NET Core,或者正在使用.NET Framework 4.7.2,则可以使用

X509Certificate2 certWithKey = cert.CopyWithPrivateKey(privateKey);

如果您要将certWithKey添加到X509Store,您需要使用持久密钥,或者导出到PFX并使用X509KeyStorageFlags.PersistKeySet将其导回

在遥远的第二个:

如果(全部):

  • 你在.NET Framework上(不是.NET Core)
  • 你的关键是RSACryptoServiceProviderDSACryptoServiceProvider
  • 你的密钥被加载到一个密钥容器(!string.IsNullOrEmpty(key.CspKeyContainerInfo.KeyContainerName)
  • 您要么没有从X509商店获得此证书,要么您不担心潜在的意外副作用

那么你可以使用X509Certificate2.PrivateKey的setter。

最后的想法

在我对.NET Standard - Merge a certificate and a private key into a .pfx file programmatically做出PFX的回答的底部有一些P / Invoke建议。一旦你制作了PFX,你就会回到“简单”的领域。


0
投票

System.Net.Security.RemoteCertificateValidationCallback默认值为null。

设置qazxsw poi和 返回qazxsw poi

System.Net.ServicePointManager.ServerCertificateValidationCallback
© www.soinside.com 2019 - 2024. All rights reserved.