Как использовать файл CA для проверки сертификатов сервера с помощью SocketsHttpHandler?C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать файл CA для проверки сертификатов сервера с помощью SocketsHttpHandler?

Сообщение Anonymous »

Я разрабатываю приложение C#, которому необходимо безопасно взаимодействовать с сервером с помощью mTLS. Сервер предоставляет сертификат, подписанный специальным центром сертификации (CA), и у меня есть сертификат CA в файле PEM. Мне нужно настроить моего клиента так, чтобы он доверял этому ЦС при проверке сертификата сервера.

Код: Выделить всё

using Grpc.Net.Client;
using System.Net.Http;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

public GrpcChannel CreateSecureChannel(string address, string clientCertPath, string clientKeyPath, string caFilePath)
{
var handler = new SocketsHttpHandler();

var clientCertificate = LoadClientCertificate(clientCertPath, clientKeyPath);

handler.SslOptions = new SslClientAuthenticationOptions
{
ClientCertificates = new X509CertificateCollection { clientCertificate },
RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
{
// how do we validate the server certificate?
}
};

var httpClient = new HttpClient(handler);

return GrpcChannel.ForAddress(address, new GrpcChannelOptions { HttpClient = httpClient });
}
Я обыскал весь Интернет и не смог найти источник, показывающий, как это сделать.
Я имею опыт работы с Java , и я не помню, чтобы это было так сложно реализовать.
Буду благодарен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ttphandler
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»