我正在尝试连接到需要配置双向SSL的API。我有我在postman中配置的证书和私钥,如下图所示。
这在Postman中工作得很好,但当我尝试使用HttpClient在C#中实现它时,SSL失败了。我得到的错误是“收到的消息是意外的或格式不正确的。”。我相信这与不正确的配置有关。
我引用了这篇StackOverflow文章来实现我的代码:将私钥与中的X509Certificate2类相关联。网
以下是我尝试过的:
byte[] publicCertificateBytes = File.ReadAllBytes("<Public Certificate>");
var publicCertificate = new X509Certificate2(publicCertificateBytes);
byte[] privateKey = Convert.FromBase64String(File.ReadAllText("<private key file>").Replace("-----BEGIN PRIVATE KEY-----", "").Replace("-----END PRIVATE KEY-----", ""));
using (var rsa = RSA.Create())
{
rsa.ImportPkcs8PrivateKey(privateKey, out _);
publicCertificate = publicCertificate.CopyWithPrivateKey(rsa);
publicCertificate = new X509Certificate2(publicCertificate.Export(X509ContentType.Pkcs12));
}
var httpService = new GenericUtilityManager().ResolveUtility<IHttpService>();
var handler = new HttpClientHandler();
handler.SslProtocols = SslProtocols.Tls12;
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ClientCertificates.Add(publicCertificate);
handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
httpService.InitializeHttpClientHandler(handler);
请帮忙。
尝试使用CreateFromPem静态函数加载证书,此方法返回一个带有私钥的新证书。
var certificateCrt = File.ReadAllText("<Public Certificate>");
var privateKey = File.ReadAllText("<private key file>");
using var certificate = X509Certificate2.CreateFromPem(certificateCrt, privateKey);
如果这不起作用,尝试创建一个新的。使用OpenSSL的pfx证书:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt
当我需要在Windows操作系统上使用证书时,我遇到了这个问题,为了工作,我必须创建一个证书。pfx证书,但在Mac和Linux等其他操作系统上,它在没有证书的情况下运行良好。pfx证书。
我使用的是PushSharp的2.1.2版本。该应用程序是。NET 4.5.1(虽然我也尝试过定位。NET 4.5和.网4) 我正在尝试通过沙箱Apple APNS发送推送消息,但没有成功。 我正在使用Ray Wenderlich的演练中提供的PHP脚本成功地发送消息,该脚本使用与我的PushSharp应用程序相同的证书并发送到相同的设备ID。 我已经通过从钥匙链导出完整的证书作为p12进行了测试
我试图解决这个问题已经有一段时间了,但我所尝试的一切都是无用的。我尝试了HttpClientHandler,但仍然得到了错误! 错误消息: 无法建立SSL连接,请参阅内部异常 身份验证失败,请参阅内部异常 收到的消息意外或格式不正确 我从零开始学习c#,而且我对c#语言非常熟悉,所以请解释一下问题所在。
我试图连接到Kafka,从C#client启用TLS,在调用。不幸的是,到目前为止,互联网上的帖子都没有帮助我解决这个问题。你知道会出什么问题吗? 下面是我用来启动连接的最小样本C#代码
我使用Windows 10, Python 3.7.6.使用以下软件包: 我使用的MySQL数据库具有以下设置。该数据库是使用我公司内的IT云数据服务创建的。我下载了SSL证书并将它们放在我的django项目中。 现在,当我键入,我可以连接到数据库,一切正常。我可以看到DB支持SSL。 但是,当我键入python manage时。py runserver要启动服务器,我会遇到以下异常,我不知道如何
我有一个。NET Core 3.1 C#应用程序,该应用程序通过HTTPS调用API(并将其公钥作为获取令牌的一部分,因为该证书稍后将用于解密单独发送回的信息)。在我们几乎所有的机器上,它都在工作,但是在一台Windows 8.1机器上,当我们尝试初始连接身份验证令牌时,我们会遇到以下一系列异常: 异常是从,因此我怀疑这是在HTTPS级别发生的,我们的证书内容在这里并不真正相关。 我们获取令牌的代
问题内容: 我最近尝试使用sftp访问我的linux机器,在那里我实现了自己的简单外壳。并且我设置了除root用户以外的其他用户默认使用我的shell(通过编辑/ etc / passwd文件)。然后问题出现了,一旦我尝试通过sftp访问,我将收到一条消息:“接收的消息太长:”,我搜索了解决方案,一种解决方案是将该用户的默认shell改回普通的bash shell。我试过了,而且奏效了,问题在于,