登录
首页 >  Golang >  Go问答

x509:未知机构使用 AWS IoT 签署的证书

来源:stackoverflow

时间:2024-04-07 08:54:25 466浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《x509:未知机构使用 AWS IoT 签署的证书》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

尝试使用适用于 go 的 aws iot 开发工具包向主题发布消息时,出现以下错误:“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)

}

解决方案


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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>