你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 CA 证书链进行客户端身份验证
在连接到服务时,使用 Azure 事件网格中的 CA 证书链对客户端进行身份验证。
在本指南中,你将执行以下任务:
- 将 CA 证书(客户端证书的直接父证书)上传到命名空间。
- 配置客户端身份验证设置。
- 使用由以前上传的 CA 证书签名的客户端证书连接客户端。
先决条件
- 需要事先创建一个事件网格命名空间。
- 需要一个 CA 证书链:客户端证书,以及用于为客户端证书签名的父证书(通常是中间证书)。
生成示例客户端证书和指纹
如果你没有证书,可以使用 Step CLI 创建一个示例证书。 考虑手动安装适用于 Windows 的版本。
安装 Step 后,在 Windows PowerShell 中运行命令来创建根证书和中间证书。
.\step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
使用生成的 CA 文件为客户端创建证书。
.\step certificate create client1-authnID client1-authnID.pem client1-authnID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
将 CA 证书上传到命名空间
- 在 Azure 门户中,导航到你的事件网格命名空间。
- 在左侧滑轨的“MQTT 代理”部分下,导航到 CA 证书菜单。
- 选择“+ 证书”启动“上传证书”页。
- 添加证书名称并浏览以查找中间证书 (.step/certs/intermediate_ca.crt),然后选择“上传”。 可以上传 .pem、.cer 或 .crt 类型的文件。
注意
- CA 证书名称的长度可为 3-50 个字符。
- CA 证书名称可以包含字母数字、连字符 (-),不能包含空格。
- 该名称在每个命名空间中必须唯一。
配置客户端身份验证设置
- 导航到“客户端”页。
- 选择“+ 客户端”以添加新客户端。 如果你要更新现有的客户端,可以选择相应的客户端名称并打开“更新客户端”页。
- 在“创建客户端”页中,添加客户端名称、客户端身份验证名称和客户端证书身份验证验证方案。 客户端身份验证名称通常显示在客户端证书的使用者名称字段中。
- 选择“创建”按钮以创建客户端。
示例证书对象架构
{
"properties": {
"description": "CA certificate description",
"encodedCertificate": "-----BEGIN CERTIFICATE-----`Base64 encoded Certificate`-----END CERTIFICATE-----"
}
}
Azure CLI 配置
使用以下命令上传/显示/删除服务的证书颁发机构 (CA) 证书
上传证书颁发机构根证书或中间证书
az eventgrid namespace ca-certificate create -g myRG --namespace-name myNS -n myCertName --certificate @./resources/ca-cert.json
显示证书信息
az eventgrid namespace ca-certificate show -g myRG --namespace-name myNS -n myCertName
删除证书
az eventgrid namespace ca-certificate delete -g myRG --namespace-name myNS -n myCertName