你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建 OT 设备的 SSL/TLS 证书

本文是介绍使用 Microsoft Defender for IoT 进行 OT 监视的部署路径系列文章之一,并介绍如何创建 CA 签名证书以用于 Defender for IoT 本地设备,包括 OT 传感器和本地管理控制台

Diagram of a progress bar with Plan and prepare highlighted.

每个证书颁发机构 (CA) 签名的证书必须同时具有 .key 文件和 .crt 文件,这些文件会在首次登录后上传到 Defender for IoT 设备中。 虽然某些组织可能还需要 .pem 文件,但 Defender for IoT 不需要 .pem 文件。

重要

必须为每个 Defender for IoT 设备创建唯一的证书,其中每个证书都满足所需条件。

先决条件

要执行本文中所述的过程,请确保具有安全、PKI 或证书专家可以监督证书创建。

确保你已熟悉 Defender for IoT 的 SSL/TLS 证书要求

创建 CA 签名的 SSL/TLS 证书

建议始终在生产环境中使用 CA 签名的证书,并且仅在测试环境中使用自签名证书

使用证书管理平台(如自动化 PKI 管理平台)创建符合 Defender for IoT 要求的证书。

如果不具有可自动创建证书的应用程序,请咨询安全、PKI 或其他合格证书主管以获取帮助。 如果不想创建新证书文件,也可以转换现有证书文件。

确保为每个 Defender for IoT 设备创建唯一的证书,其中每个证书都满足所需的参数条件

例如

  1. 打开下载的证书文件,选择“详细信息”选项卡>“复制到文件”,以运行“证书导出向导”。

  2. 在“证书导出向导”中,选择“下一步”>“DER 编码的二进制 X.509 (.CER)”>然后再次选择“下一步”。

  3. 在“要导出的文件”屏幕中,选择“浏览”,选择存储证书的位置,然后选择“下一步”。

  4. 选择“完成”导出证书。

注意

可能需要将现有文件类型转换为支持的类型。

验证证书是否满足证书文件要求,然后在完成后测试创建的证书文件。

如果未使用证书验证,请移除证书中的 CRL URL 引用。 有关详细信息,请参阅证书文件要求

提示

(可选)创建证书链,这是一个 .pem 文件,其中包含导向证书的信任链中所有证书颁发机构的证书。

验证 CRL 服务器访问权限

如果组织对证书进行验证,则 Defender for IoT 设备必须能够访问由证书定义的 CRL 服务器。 默认情况下,证书通过 HTTP 端口 80 访问 CRL 服务器 URL。 但是,某些组织安全策略会阻止对此端口的访问。

如果设备无法访问端口 80 上的 CRL 服务器,则可以使用以下解决方法之一:

  • 在证书中定义另一个 URL 和端口

    • 定义的 URL 必须配置为 http: // 而不是 https://
    • 请确保目标 CRL 服务器可以侦听定义的端口
  • 使用可以访问端口 80 上的 CRL 的代理服务器

    有关详细信息,请参阅 [转发 OT 警报信息]。

如果验证失败,则相关组件之间的通信将会停止,并在控制台中显示验证错误。

将 SSL/TLS 证书导入到受信任的存储

创建证书后,将其导入受信任的存储位置。 例如:

  1. 打开安全证书文件,然后在“常规”选项卡中选择“安装证书”以启动“证书导入向导”。

  2. 在“存储位置”中,选择“本地计算机”,然后选择“下一步”。

  3. 如果显示“用户允许控制”提示,请选择“是”以允许应用程序对设备进行更改。

  4. 在“证书存储”屏幕中,选择“根据证书类型自动选择证书存储”,然后选择“下一步”。

  5. 选择“将所有证书放入以下存储”、“浏览”,然后选择“受信任的根证书颁发机构”存储。 完成后,选择“下一步” 。 例如:

    Screenshot of the certificate store screen where you can browse to the trusted root folder.

  6. 选择“完成”以完成导入。

测试 SSL/TLS 证书

在将证书部署到 Defender for IoT 设备之前,使用以下过程测试证书。

根据示例检查证书

使用以下示例证书与你创建的证书进行比较,确保以相同的顺序存在相同的字段。

Bag Attributes: <No Attributes>
subject=C = US, S = Illinois, L = Springfield, O = Contoso Ltd, OU= Contoso Labs, CN= sensor.contoso.com, E 
= support@contoso.com
issuer C=US, S = Illinois, L = Springfield, O = Contoso Ltd, OU= Contoso Labs, CN= Cert-ssl-root-da2e22f7-24af-4398-be51-
e4e11f006383, E = support@contoso.com
-----BEGIN CERTIFICATE-----
MIIESDCCAZCgAwIBAgIIEZK00815Dp4wDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV 
BAYTAIVTMREwDwYDVQQIDAhJbGxpbm9pczEUMBIGA1UEBwwLU3ByaW5nZmllbGQx
FDASBgNVBAoMCONvbnRvc28gTHRKMRUWEwYDVQQLDAXDb250b3NvIExhYnMxGzAZ
BgNVBAMMEnNlbnNvci5jb250b3NvLmNvbTEIMCAGCSqGSIb3DQEJARYTc3VwcG9y
dEBjb250b3NvLmNvbTAeFw0yMDEyMTcxODQwMzhaFw0yMjEyMTcxODQwMzhaMIGK
MQswCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxFDASBgNVBAcMC1Nwcmlu 
Z2ZpZWxkMRQwEgYDVQQKDAtDb250b3NvIEX0ZDEVMBMGA1UECwwMQ29udG9zbyBM 
YWJzMRswGQYDVQQDDBJzZW5zb3luY29udG9zby5jb20xljAgBgkqhkiG9w0BCQEW 
E3N1cHBvcnRAY29udG9zby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK 
AoIBAQDRGXBNJSGJTfP/K5ThK8vGOPzh/N8AjFtLvQiiSfkJ4cxU/6d1hNFEMRYG
GU+jY1Vknr0|A2nq7qPB1BVenW3 MwsuJZe Floo123rC5ekzZ7oe85Bww6+6eRbAT 
WyqpvGVVpfcsloDznBzfp5UM9SVI5UEybllod31MRR/LQUEIKLWILHLW0eR5pcLW 
pPLtOW7wsK60u+X3tqFo1AjzsNbXbEZ5pnVpCMqURKSNmxYpcrjnVCzyQA0C0eyq
GXePs9PL5DXfHy1x4WBFTd98X83 pmh/vyydFtA+F/imUKMJ8iuOEWUtuDsaVSX0X
kwv2+emz8CMDLsbWvUmo8Sg0OwfzAgMBAAGjfDB6MB0GA1UdDgQWBBQ27hu11E/w 
21Nx3dwjp0keRPuTsTAfBgNVHSMEGDAWgBQ27hu1lE/w21Nx3dwjp0keRPUTSTAM
BgNVHRMEBTADAQH/MAsGA1UdDwQEAwIDqDAdBgNVHSUEFjAUBggrBgEFBQcDAgYI
KwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBADLsn1ZXYsbGJLLzsGegYv7jmmLh
nfBFQqucORSQ8tqb2CHFME7LnAMfzFGpYYV0h1RAR+1ZL1DVtm+IKGHdU9GLnuyv
9x9hu7R4yBh3K99ILjX9H+KACvfDUehxR/ljvthoOZLalsqZIPnRD/ri/UtbpWtB 
cfvmYleYA/zq3xdk4vfOI0YTOW11qjNuBIHh0d5S5sn+VhhjHL/s3MFaScWOQU3G 
9ju6mQSo0R1F989aWd+44+8WhtOEjxBvr+17CLqHsmbCmqBI7qVnj5dHvkh0Bplw 
zhJp150DfUzXY+2sV7Uqnel9aEU2Hlc/63EnaoSrxx6TEYYT/rPKSYL+++8=
-----END CERTIFICATE-----

测试不含 .csr 或私钥文件的证书

如果要检查证书 .csr 文件或私钥文件中的信息,请使用以下 CLI 命令:

  • 检查证书签名请求 (CSR):运行 openssl req -text -noout -verify -in CSR.csr
  • 检查私钥:运行 openssl rsa -in privateKey.key -check
  • 检查证书:运行 openssl x509 -in certificate.crt -text -noout

如果这些测试失败,请查看证书文件要求以验证文件参数是否准确,或咨询证书专家。

验证证书的公用名

  1. 若要查看证书的公用名,请打开证书文件并选择“详细信息”选项卡,然后选择“使用者”字段。

    证书的公用名将显示在“CN”旁边。

  2. 在没有安全连接的情况下登录传感器控制台。 在“你的连接不是专用连接”警告屏幕中,可能会看到“NET::ERR_CERT_COMMON_NAME_INVALID”错误消息。

  3. 选择该错误消息将其展开,然后复制“使用者”旁边的字符串。 例如:

    Screenshot of the connection isn't private screen with the details expanded.

    使用者字符串应与安全证书详细信息中的 CN 字符串匹配。

  4. 在本地文件资源管理器中,浏览到主机文件,例如“这台电脑”>“本地磁盘(C:)”>“Windows”>“System32”>“drivers”>“etc”,然后打开 hosts 文件。

  5. 在 hosts 文件中,在文档末尾添加一行,其中包含在前面步骤中复制的传感器 IP 地址和 SSL 证书的公用名。 完成后,保存更改。 例如:

    Screenshot of the hosts file.

自签名证书

安装 Defender for IoT OT 监视软件后,自签名证书将可用于测试环境。 有关详细信息,请参阅:

后续步骤