Клиент сертификата C # GRPC не найден - PullRequest
0 голосов
/ 14 октября 2019

На этом сайте (https://docs.microsoft.com/es-es/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-3.0&tabs=visual-studio) Microsoft пишет об использовании GRPC и публикует примеры для загрузки. Одним из примеров является Сертификатор. Сертификатор показывает, как настроить клиент и сервер для использования TLSсертификат клиента с вызовом gRPC. Сервер настроен на запрос сертификата клиента с использованием аутентификации сертификата клиента ASP.NET Core .

В моем коде я пишу клиенту, заменяю оригиналклиент, в обозревателе решений я не могу прочитать два файла: client.pfx и clienta.pfx, сгенерированные из IIS. Код:

private static HttpClient CreateHttpClient(bool includeClientCertificate)
{
var handler = new HttpClientHandler();
if (includeClientCertificate)
{
// Load client certificate
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
// var certPath = Path.Combine(basePath!, "Certs", "client.pfx");
var certPath = Path.Combine(basePath!, "Certs", "clienta.pfx");
//  var clientCertificate = new X509Certificate2(certPath, "1111");
var clientCertificate = new X509Certificate2(certPath, "Javier", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.EphemeralKeySet);
handler.ClientCertificates.Add(clientCertificate);
}
// Create client
return new HttpClient(handler);
}

И ошибка равна

Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException
HResult=0x80070002
Mensaje = El sistema no puede encontrar el archivo especificado.
Origen = System.Security.Cryptography.X509Certificates
Seguimiento de la pila:
at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags)
at   System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)
at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)
 at Client.Program.CreateHttpClient(Boolean includeClientCertificate) in C:\Users\HP\Source\Repos\Grpc Ejemplos\grpc-dotnet\examples\Certifier\Client\Program.cs:line 87
...