gRPC C# 服务器身份验证
gRPC C# Server authentication
我正在尝试使用 gRPC 执行服务器身份验证,但我不确定如何继续。
我当前的设置是我在一台机器上有一个服务器 运行,在另一台机器上有一个客户端(两台机器都是 windows)。
出于测试目的,我使用 windows makecert.exe 生成了证书颁发机构和私有证书(来自该证书颁发机构)。
这会生成 .cer 文件。
SslServerCredentials 的文档没有任何关于 .cer 文件的规定。在这种情况下,我的 KeyCertificatePair 是什么?文档对此不清楚。
http://www.grpc.io/grpc/csharp/html/T_Grpc_Core_SslServerCredentials.htm
此外,我只想让服务器验证自己,我需要对客户端 gRPC 调用进行任何特殊规定吗?
您需要私钥和证书文件。你可以看到 gRPC 测试代码是如何做到的 here.
首先,您应该将此配置添加到您的 appsettings.json
},
"AllowedHosts": "*",
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http2"
},
"EndPoints": {
"Https": {
"Url": "https://*:5002",
"Certificate": {
"Path": "c:\test.pfx",
"Password": "password1234"
}
}
}
},
"token": "DO6&gkOK5%$fRD#eRt$",
}
可以通过多种方式生成该证书。 IIS 或 powershell 命令。此代码位于驱动器 c: 中,仅供测试。
然后你应该在 Program.main 上得到像这样的令牌值:
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
// Duplicate here any configuration sources you use.
configurationBuilder.AddJsonFile("AppSettings.json");
IConfiguration configuration = configurationBuilder.Build();
string token = configuration["token"];
有人说这个令牌不应该在配置文件中,但现在我不知道该把它放在哪里。你也应该调查一下。如果你不介意,请告诉我:)
我正在尝试使用 gRPC 执行服务器身份验证,但我不确定如何继续。 我当前的设置是我在一台机器上有一个服务器 运行,在另一台机器上有一个客户端(两台机器都是 windows)。 出于测试目的,我使用 windows makecert.exe 生成了证书颁发机构和私有证书(来自该证书颁发机构)。 这会生成 .cer 文件。
SslServerCredentials 的文档没有任何关于 .cer 文件的规定。在这种情况下,我的 KeyCertificatePair 是什么?文档对此不清楚。 http://www.grpc.io/grpc/csharp/html/T_Grpc_Core_SslServerCredentials.htm
此外,我只想让服务器验证自己,我需要对客户端 gRPC 调用进行任何特殊规定吗?
您需要私钥和证书文件。你可以看到 gRPC 测试代码是如何做到的 here.
首先,您应该将此配置添加到您的 appsettings.json
},
"AllowedHosts": "*",
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http2"
},
"EndPoints": {
"Https": {
"Url": "https://*:5002",
"Certificate": {
"Path": "c:\test.pfx",
"Password": "password1234"
}
}
}
},
"token": "DO6&gkOK5%$fRD#eRt$",
}
可以通过多种方式生成该证书。 IIS 或 powershell 命令。此代码位于驱动器 c: 中,仅供测试。
然后你应该在 Program.main 上得到像这样的令牌值:
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
// Duplicate here any configuration sources you use.
configurationBuilder.AddJsonFile("AppSettings.json");
IConfiguration configuration = configurationBuilder.Build();
string token = configuration["token"];
有人说这个令牌不应该在配置文件中,但现在我不知道该把它放在哪里。你也应该调查一下。如果你不介意,请告诉我:)