У меня есть клиент / серверный код gRP C, успешно работающий на моей локальной машине с клиентом, использующим ChannelCredentials. Небезопасный, но мне нужно перейти в безопасный режим. Мне не нужны какие-либо проверки сертификатов, только зашифрованный трафик c. Мне не удалось найти конфигурацию клиентского сервера, которая общается друг с другом. Запуск c# основного сервера (gRP C 2.27.0) и & c#. net Framework Framework (gRP C 2.28.1).
Сервер сообщает, что публикует на http & https как показано ниже:
[20:12:58 DBG] Using development certificate: CN=localhost (Thumbprint: 3EDA2E5BD559D75C9DCF058E0A6994EED859CD34)
[20:12:58 INF] Now listening on: https://localhost:5001
[20:12:58 INF] Now listening on: http://localhost:5000
и клиент работает с:
ChannelBase channel = new Channel("localhost:5000", ChannelCredentials.Insecure);
var client = new MyApp.MyAppClient(channel);
var response = client.Test(request)
Если я переключаю клиента на SslCredentials, как показано ниже
ChannelBase channel = new Channel("localhost:5001", new SslCredentials());
var client = new MyApp.MyAppClient(channel);
var response = client.Test(request)
, я получаю следующие ошибки.
ошибка сервера
[19:32:53 DBG] Failed to authenticate HTTPS connection.
System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest)
ошибка клиента
Grpc.Core.RpcException: 'Status(StatusCode=Unavailable, Detail="failed to connect to all addresses")'
Я также попытался добавить (сервер) без изменений в ошибках.
services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme)
.AddCertificate(options =>
{
options.RevocationMode = X509RevocationMode.NoCheck;
options.ValidateCertificateUse = false;
options.AllowedCertificateTypes = CertificateTypes.SelfSigned;
});
Любые предложения относительно того, что мне нужно сделать, чтобы заставить их говорить.