微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生成生产 x509 证书

如何解决生成生产 x509 证书

尝试通过 nodeJS 为边缘设备实现 TPM 配置。 https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-node 如前所述,能够生成用于测试目的的自签名证书。请帮助我,如何为生产环境生成和验证。我不太清楚术语,正在寻找做 RD 的起点。

这里是从azure-IoT-sdk节点JS派生的自签名证书验证示例代码

var deviceCert = {
  cert: fs.readFileSync(process.env.CERTIFICATE_FILE).toString(),key: fs.readFileSync(process.env.KEY_FILE).toString()
};

var transport = new Transport();
var securityClient = new X509Security(registrationId,deviceCert);
var deviceClient = ProvisioningDeviceClient.create(provisioningHost,idScope,transport,securityClient);

解决方法

如果您查看 create_test_cert.js 的源代码,您会看到您正在使用的教程中的参数创建了一个自签名证书。此外,代码使用 Math.random 而不是 crypto.randomXXX。这对我来说是一个危险信号,但它可能什么都不是。文章说,“自签名证书仅用于测试,不应用于生产。”

安全密钥管理的话题太大,无法在堆栈溢出答案中涵盖,但从 50,000 英尺的角度来看。您想创建一个根 CA。大多数大公司在未连接到网络或特殊硬件卡中的机器上保持这些非常安全。从那里您创建一个或多个中间证书。一个常见的模式是每个产品的根 CA 的中间证书,然后是构建设备的每个工厂的产品证书的中间证书。从那里,设备证书是从中间工厂证书创建的。这样,如果第三方工厂受到威胁,您可以撤销其证书并重新颁发,而无需关闭整个产品或公司。

创建根证书和中间证书的代码在脚本中。您唯一需要做的另一件事是使用组注册向设备配置服务注册根 CA 或中间 CA。这样,所有由已注册的密钥或具有在 DPS 中注册的父密钥签名的设备密钥都可以提供。团体注册所需的所有权证明代码也在脚本中。不久前,我为 SDK 的 C 版本编写了一个类似的 bash 脚本,可以找到 here,以防万一。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。