为IoT-Edge透明网关配置证书时出现问题

时间:2017-12-19 12:24:30

标签: azure-iot-edge

我按照此处的说明操作:https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway

当我使用OpenSSL和' New-CACertsEdgeDevice创建证书myGateway'命令,我最终得到一个基于椭圆曲线的私钥,当我使用消息配置边缘网关时,该私钥失败

  

"目前仅支持RSA"。

我修改了ca-certs.ps1中的New-CACertsCertChain脚本(将$ useEcc var设置为$ false)并重新编译。脚本成功,但现在New-CACertsEdgeDevice脚本失败并显示:

  

New-SelfSignedCertificate:无法转换' System.Object []'到了   键入' Microsoft.CertificateServices.Commands.Certificate'需要的   参数'签名者'。不支持指定的方法。

知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

我找到了答案,虽然我仍然不确定根本原因。

这些步骤允许我创建有效的证书......

我保留了对New-CACertsCertChain(上面提到的)所做的更改

我删除了机器证书商店的所有以前的证书

然后我关闭了现有的PowerShell控制台并启动了一个新的管理员。

我从这里安装了OpenSSL:https://sourceforge.net/projects/openssl/ @此目录:C:\ utils \ openssl \ bin

我按如下方式设置环境路径: $ ENV:PATH + =“; C:\ utils \ openssl \ bin” $ ENV:OPENSSL_CONF =“C:\ utils \ openssl \ bin \ openssl.cnf”

之后我继续阅读文章的指示并且有效。我确实收到了关于找不到C:/OpenSSL/openssl.cnf的警告,但我忽略了它。

答案 1 :(得分:0)

我认为你做错了什么。

似乎PowerShell脚本存在问题。好消息是Azure IoT C SDK GitHub分支CACertToolEdge上的说明已得到修复,您可以将其同步并重新尝试。

我在此处提出了一个问题:https://github.com/Azure/azure-iot-sdk-c/issues/337要更正此问题。

编辑: 2018年1月9日:脚本似乎已修复,您不应该遇到这个特定问题。