首页 > 解决方案 > x509:由未知机构使用 AWS IoT 签署的证书

问题描述

尝试使用 AWS IoT SDK for go 将消息发布到主题时,出现以下错误:“x509:证书由未知机构签名”。我在 Windows 上,我所做的只是安装不同的根 CA(字面意思是通过双击)和 AWS IoT 控制台生成的设备证书。

我觉得我应该以某种方式指定证书的路径,但与 Python SDk 不同的是,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)

}

标签: amazon-web-servicesgox509aws-iot

解决方案


发现错误:xxxxxxxxxx.iot.eu-central-1.amazonaws.com 需要为 xxxxxxxxxx-ats.iot.eu-central-1.amazonaws.com。


推荐阅读