ssl 对#C gRPC使用具有通用名称的TLS凭据

q5iwbnjs  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(87)

使用Go gRPC库,你可以使用一个特定的公共名来创建一个tls.Config。但是,使用gRPC C#库作为ChannelCredentials,我还不能弄清楚如何将公共名作为证书的一部分来传递。
任何帮助或指针如何使用一个共同的名称时,创建一个通道凭据将不胜感激!

t1rydlwq

t1rydlwq1#

var channelCredentials = new SslCredentials(File.ReadAllText("server.pem"));
var option = new List<ChannelOption>
{
    new ChannelOption(ChannelOptions.SslTargetNameOverride, "your-common-name")
};
channel = new Channel(address, channelCredentials, option);
2lpgd968

2lpgd9682#

SnowCrumble意味着如果您使用this Nuget包创建gRpc-channel,则可以按以下方式设置'common-name':

using Grpc.Core;   
... 
var channelCredentials = new SslCredentials(File.ReadAllText("server.pem"));
var option = new List<ChannelOption>
{
    new ChannelOption(ChannelOptions.SslTargetNameOverride, "your-common-name")
};
channel = new Channel(address, channelCredentials, option);

这段代码覆盖了grpc.ssl_target_name_override通道参数。但是正如Jan Tattermusch在他的注解中所说的:请注意强制更改“common-name”,因为它应该是证书的一部分。

相关问题