【问题标题】:How to generate public certificate, private key from root certificate?如何从根证书生成公共证书、私钥?
【发布时间】:2018-09-24 17:39:56
【问题描述】:

我有来自 Linux 服务器的根证书 pem 文件。需要连接到该服务器的应用程序告诉我它需要一个 publicCert pem 文件和一个 privateKey pem 文件才能与服务器通信。

我是否从根证书生成这些?我的想法是我会为 openssl 提供根证书的路径,然后它会转储出我想要的 publicCert/privateKey。

我已经按照here 的描述在服务器上创建了证书。现在我需要按照here 的描述在下游设备上安装。

我需要使用的客户端连接的输入需要这些参数:

connString: 'HostName=foo'
protocol: MQTT
publicKeyCertificateString: certificateString or path to certificate
privateKeyString: keyString or path to key

new DeviceClient(connString, protocol, publicKeyCertificateString, privateKeyString);
  • 证书格式:pem
  • 认证格式:x509

【问题讨论】:

  • 证书基本上是带有一些元数据的公钥。如果你只有那个,当然不可能从中计算出私钥。否则任何人都可以冒充任何网站开始,这很糟糕。

标签: ssl openssl azure-iot-hub azure-iot-edge


【解决方案1】:

您只需要在下游设备的信任库中提供根 CA 证书。您似乎想要做的是相互身份验证。 Azure IoT Edge 当前不支持下游设备使用客户端证书(相互身份验证)进行连接。 (边缘设备只支持对称密钥认证,不支持 x509 证书认证)。对于使用 MQTT 发布消息,您需要为下游设备生成 SAS 令牌,然后使用它与 iot hub 通信(边缘设备将充当透明网关)。

相关:c# Azure IOT Edge Auto-provision with Device Provisioning Service(DPS) with x509 certificate sample needed

【讨论】:

    猜你喜欢
    • 2017-03-11
    • 2012-09-06
    • 1970-01-01
    • 2010-10-29
    • 2011-11-16
    • 2012-07-17
    • 1970-01-01
    • 2022-12-16
    • 2020-01-18
    相关资源
    最近更新 更多