ni / grpc-labview

gRPC client and server support for LabVIEW
MIT License
88 stars 62 forks source link

How to Force TLSv1.2 or Http1.0/1.1? #225

Closed ZhiYang-Ong closed 1 year ago

ZhiYang-Ong commented 1 year ago

I am trying to run the gRPC client from .NET Framework 4.6.2 in Windows 10 with the LabVIEW gRPC server. So far I encountered multiple limitations of Grpc.Net.Client in .NET Framework 4.6.2.

  1. .NET implementations that don't support HTTP/2 (Use gRPC client with .NET Standard 2.0)
  2. WinHttp supports HTTP/2 but only gRPC calls over TLS are supported.
  3. I generated the cert file using openssl and include the credential into the WinHttp. LabVIEW client works but the C# client fails with error 12175 (One or more errors were found in the Secure Sockets Layer (SSL) certificate sent by the server.). Upon inspecting Wireshark, I found out that the LabVIEW gRPC client uses TLSv1.3 but the C# client uses TLSv1.2. Unfortunately, TLSv1.3 is not supported in Windows 10. (Protocols in TLS/SSL (Schannel SSP))

Since I am planning to implement the C# client for VeriStand Editor Plugin Examples, I cannot change the .NET Framework version. My only option now is to use a lower TLS or HTTP version. Appreciate it if you can point out how can I make this configuration.

AB#2285612

Rohith-Grandhi commented 1 year ago

@ZhiYang-Ong, I am not sure of you got the answer for this or if your issue is resolved. Can you conform if I can close this issue?

ZhiYang-Ong commented 1 year ago

@Rohith-Grandhi I have managed to work around this by exporting the LabVIEW gRPC Client VI as an interop assembly in .NET. Please feel free to close this ticket. Thanks.