gRPC C#服务器身份验证

gRPC C#服务器身份验证,c#,authentication,ssl,grpc,C#,Authentication,Ssl,Grpc,我正在尝试使用gRPC执行服务器身份验证,但是我不确定如何继续。 我当前的设置是在一台机器上运行一台服务器,在另一台机器上运行一台客户机(都是windows机器)。 出于测试目的,我使用windows makecert.exe生成了一个证书颁发机构和一个私有证书(来自此证书颁发机构)。 这将生成.cer文件 SslServerCredentials的文档没有任何关于.cer文件的规定。在这种情况下,我的钥匙证书是什么?文件对此不清楚。 此外,我只希望服务器进行自身身份验证,客户端gRPC调用是

我正在尝试使用gRPC执行服务器身份验证,但是我不确定如何继续。 我当前的设置是在一台机器上运行一台服务器,在另一台机器上运行一台客户机(都是windows机器)。 出于测试目的,我使用windows makecert.exe生成了一个证书颁发机构和一个私有证书(来自此证书颁发机构)。 这将生成.cer文件

SslServerCredentials的文档没有任何关于.cer文件的规定。在这种情况下,我的钥匙证书是什么?文件对此不清楚。


此外,我只希望服务器进行自身身份验证,客户端gRPC调用是否需要任何特殊设置?

您需要私钥和证书文件。您可以看到gRPC测试代码是如何实现的。

首先,您应该将此配置添加到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"];
有人说这个令牌不应该在配置文件中,但现在我不知道该放在哪里。你也应该对此进行调查。如果你不介意的话,告诉我:)