繁体   English   中英

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 测试代码是如何执行的。

首先,您应该将此配置添加到您的 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"];

有人说这个令牌不应该出现在配置文件中,但现在我不知道还能把它放在哪里。 你也应该调查一下。 如果你不介意,请告诉我:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM