X509CertificateCollection certCollec =
new X509CertificateCollection(new X509Certificate[1] { xcert});
X509CertificateCollection certCollecpfx =
new X509CertificateCollection(new X509Certificate[1] { pfxCert });
SSLStream.AuthenticateAsClient(apsHost, certCollec, SslProtocols.Default, false);
certCollec содержит сертификат в PEM форматеAuthenticateAsServer не будет принимать сертификаты в формате PEM
certCollecpfx содержит сертификат в PFX формате
AuthenticateAsClient сервер работает только с PFX формат даже если объект X509Certificate2 для pem и pfx имеют точно такие же исходные данные.
Почему это? Он продолжает говорить мне. Сбой вызова SSPI: данные были плохо отформатированы.
Почему он не принимает формат pem?
Затем я попытался экспортировать формат pem в pfx, и он все еще не принял его - та же ошибка, хотя я экспортировал его в pfx.
byte[] pemCertBytes = pemCert.Export(X509ContentType.Pfx, "620fpass");
File.WriteAllBytes(@"C:\test\MyCert.pfx", pemCertBytes);
Если я хорошо помню, чтобы преобразовать сертификат с закрытым ключом из одного формата в другой, вам необходимо загрузить сертификат, используя X509KeyStorageFlags.Exportable флаг. –