您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

教程:使用 OpenSSL 创建自签名证书

可以使用两个自签名设备证书在 IoT 中心对设备进行身份验证。 此功能有时称作指纹身份验证,因为证书包含提交到 IoT 中心的指纹(哈希值)。 以下步骤说明如何创建两个自签名证书。 此类证书主要用于测试。

步骤 1 - 创建第一个证书的密钥

openssl genpkey -out device1.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048

步骤 2 - 创建第一个证书的 CSR

出现提示时,请确保指定设备 ID。

openssl req -new -key device1.key -out device1.csr

Country Name (2 letter code) [XX]:.
State or Province Name (full name) []:.
Locality Name (eg, city) [Default City]:.
Organization Name (eg, company) [Default Company Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server hostname) []:{your-device-id}
Email Address []:

步骤 3 - 检查 CSR

openssl req -text -in device1.csr -noout

步骤 4 - 对证书 1 进行自签名

openssl x509 -req -days 365 -in device1.csr -signkey device1.key -out device1.crt

步骤 5 - 创建第二个证书的密钥

openssl genpkey -out device2.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048

步骤 6 - 创建第二个证书的 CSR

出现提示时,请指定用于证书 1 的同一设备 ID。

openssl req -new -key device2.key -out device2.csr

Country Name (2 letter code) [XX]:.
State or Province Name (full name) []:.
Locality Name (eg, city) [Default City]:.
Organization Name (eg, company) [Default Company Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server hostname) []:{your-device-id}
Email Address []:

步骤 7 - 对证书 2 进行自签名

openssl x509 -req -days 365 -in device2.csr -signkey device2.key -out device2.crt

步骤 8 - 检索证书 1 的指纹

openssl x509 -in device1.crt -noout -fingerprint

步骤 9 - 检索证书 2 的指纹

openssl x509 -in device2.crt -noout -fingerprint

步骤 10 - 创建新的 IoT 设备

在 Azure 门户中导航到你的 IoT 中心,并创建具有以下特征的新 IoT 设备标识:

  • 提供与两个证书的使用者名称匹配的 设备 ID
  • 选择“X.509 自签名”身份验证类型。
  • 粘贴从设备主要证书和辅助证书中复制的十六进制字符串指纹。 确保十六进制字符串不包含冒号分隔符。

后续步骤

前往“测试证书身份验证”,以确定证书是否可在 IoT 中心对设备进行身份验证。 该页上的代码要求使用 PFX 证书。 使用以下 OpenSSL 命令将设备 .crt 证书转换为 .pfx 格式。

openssl pkcs12 -export -in device.crt -inkey device.key -out device.pfx