Не удалось установить соединение HTTP/2, поскольку сервер не завершил подтверждение HTTP/2.C#

Место общения программистов C#
Ответить
Anonymous
 Не удалось установить соединение HTTP/2, поскольку сервер не завершил подтверждение HTTP/2.

Сообщение Anonymous »

Я хотел использовать самозаверяющий сертификат, чтобы использовать gRPC dotnet, но при вызове службы со стороны клиента получаю следующую ошибку: Не удалось установить соединение HTTP/2, поскольку сервер не завершил HTTP/2. рукопожатие.
Я создал сертификат PFX с помощью этого скрипта:

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

@echo off
set path="C:\Program Files\OpenSSL-Win64\bin"
#set OPENSSL_CONF=D:\programas\OpenSSL-Win64\OpenSSL-Win64\bin\openssl.cfg

#CA

echo Generate CA key:
openssl genrsa -passout pass:1111 -des3 -out ca.key 4096

echo Generate CA certificate:
openssl req -passin pass:1111 -new -x509 -days 36500 -key ca.key -out ca.crt -subj  "/C=US/ST=CA/L=Cupertino/O=YourCompany/OU=YourApp/CN=MyRootCA"

#SERVER

echo Generate server key:
openssl genrsa -passout pass:1111 -des3 -out server.key 4096

echo Generate server signing request:
openssl req -passin pass:1111 -new -key server.key -out server.csr -subj  "/C=US/ST=CA/L=Cupertino/O=YourCompany/OU=YourApp/CN=%COMPUTERNAME%"

echo Self-sign server certificate:
openssl x509 -req -passin pass:1111 -days 36500 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

#Se crea el certificado pfx
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

echo Remove passphrase from server key:
#openssl rsa -passin pass:1111 -in server.key -out server.key

#CLIENT

echo Generate client key
openssl genrsa -passout pass:1111 -des3 -out client.key 4096

echo Generate client signing request:
openssl req -passin pass:1111 -new -key client.key -out client.csr -subj  "/C=US/ST=CA/L=Cupertino/O=YourCompany/OU=YourApp/CN=%CLIENT-COMPUTERNAME%"

echo Self-sign client certificate:
openssl x509 -passin pass:1111 -req -days 36500 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

#Se crea el certificado pfx
openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt

echo Remove passphrase from client key:
#openssl rsa -passin pass:1111 -in client.key -out client.key

pause
В своем сервисе я использую этот код:

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

            webBuilder.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, 5001, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http2;
listenOptions.UseHttps("server.pfx", "1111");
//listenOptions.UseHttps("
", "");
});
});
webBuilder.UseStartup();

webBuilder.UseStartup();
});
В моем клиенте есть этот код:

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

X509Certificate2 miCertificado = new X509Certificate2("client.pfx", "1111");

HttpClientHandler miHandler = new HttpClientHandler();
miHandler.ClientCertificates.Add(miCertificado);
HttpClient miHttpClient = new HttpClient(miHandler);

GrpcChannelOptions misOpciones = new GrpcChannelOptions() { HttpClient = miHttpClient };

var miChannel = GrpcChannel.ForAddress("http://1.1.1.2:5001");

var miClient = MagicOnionClient.Create(miChannel);

ComponentesDto miDataResultado = await miClient.GetDataAsync();
Я не понимаю, в чем может быть проблема. Что я делаю не так?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/674 ... ot-complet
Ответить

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

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

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

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

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