我按照此处的说明操作: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'需要的 参数'签名者'。不支持指定的方法。
知道我做错了吗?
答案 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日:脚本似乎已修复,您不应该遇到这个特定问题。