利用 SSL/TLS 保护 ASP.NET Core 应用中的 gRPC 端点
1. 概述
本文将涵盖以下主题:
- 配置 gRPC 客户端和服务器进行非加密通信
- 创建并信任自签名证书
- 在 gRPC 客户端和服务器上应用证书身份验证
通过学习,你将了解如何在不启用 TLS 的情况下,为 HTTP/2 和 HTTP/1.1 托管 ASP.NET Core gRPC 服务应用程序,还会学习如何使用自定义数据创建和签署自己的 TLS 证书,以及如何使用自定义证书保护 gRPC 服务应用程序。
2. 技术要求
要遵循本文的说明,你需要以下条件:
- 一台运行 Windows 或 Linux 操作系统的计算机(如果你使用 macOS,则需要 Windows 或 Linux 虚拟机)
- 支持的集成开发环境(IDE)或代码编辑器(如 Visual Studio、Visual Studio Code 或 JetBrains Rider)
- .NET 5 软件开发工具包(SDK)
注意 :由于 macOS 缺乏应用层协议协商(ALPN)支持,无法使用 TLS 保护 Mac 上的 HTTP/2 端口。因此,如果你是 Mac 用户,可能无法遵循本文的某些说明。不过,如果你在 Mac 上设置了 Windows 或 Linux 虚拟机,就可以实现代码示例。
3. 配置 gRPC 客户端和服务器进行非加密通信
在讨论使用自定义证书保护 gRPC 端点的过程之前,我们先介绍基本情况,即如何设置应用程序在不使用此类证