У меня есть приложение dotnet core signalR для сервисов kubernetes. Вдобавок ко всему, давайте зашифруем входной сервис, который предоставит мне SSL-сертификат.
Я могу получить веб-сайт под сертификатом Let's encrypt, и все кажется действительным.
Если я хочу подключить signalR по протоколу wss, каждые 2 секунды соединение сбрасывается.
Ошибка:
{"error":"Handshake was canceled."}
The connection was terminated cleanly with status code 1000 (NORMAL).
Лог сервера такой:
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://DOMAIN/ChatHub
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionManager[1]
New connection XPqUHoK9b4PAeF_bKwQtIg created.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionDispatcher[4]
Establishing new connection.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionHandler[5]
OnConnectedAsync started.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[1]
Socket opened using Sub-Protocol: '(null)'.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionContext[2]
Handshake was canceled.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[7]
Waiting for the client to close the socket.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[2]
Socket closed.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionManager[2]
Removing connection XPqUHoK9b4PAeF_bKwQtIg from the list of connections.
Версии приложений:
netcoreapp2.2
Microsoft.AspNet.SignalR -v 2.4.0
Я пробовал также чистые соединения через веб-сокет, но это было то же самое. Как я могу решить эту проблему?
PS: Это сработало, если бы я определил физический SSL-сертификат для сервера пустельги.