当尝试使用AWS IoT SDK将消息发布到主题时,出现以下错误:“ x509:证书由未知授权机构签名”。 我在Windows上,所做的只是安装了不同的根CA(实际上是通过doubleclick)和由AWS IoT控制台生成的设备证书。
我觉得我应该以某种方式指定证书的路径,但是与Python SDk不同,go-go并没有在任何地方提及。我还通过AWS Cli添加了我的凭证,因此这不是问题。
package main
import (
"fmt"
"log"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/iotdataplane"
)
func main() {
sess, err := session.NewSession(&aws.Config{
Region: aws.String("eu-central-1"), Endpoint: aws.String("xxxxxxxxxx.iot.eu-central-1.amazonaws.com")},
)
if err != nil {
log.Fatal(err)
}
iotDataSvc := iotdataplane.New(sess)
input := &iotdataplane.PublishInput{
Payload: []byte(`{
'state': {
'desired':{
'humidity':10,
'temp':10
}
}
}`),
Topic: aws.String("/update"),
Qos: aws.Int64(0),
}
resp, err := iotDataSvc.Publish(input)
if err != nil {
log.Fatal(err)
}
fmt.Println(resp)
}
答案 0 :(得分:0)
发现了错误:xxxxxxxxxx.iot.eu-central-1.amazonaws.com必须是xxxxxxxxxx-ats.iot.eu-central-1.amazonaws.com。