前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >The Things Network LoRaWAN Stack V3 学习笔记 2.1.2 客户端导入自签名 CA 证书

The Things Network LoRaWAN Stack V3 学习笔记 2.1.2 客户端导入自签名 CA 证书

作者头像
twowinter
发布2020-04-17 11:06:21
1.4K0
发布2020-04-17 11:06:21
举报
文章被收录于专栏:twowinter

前言

TTN 的开发环境使用了自签名证书,浏览器端在进行OAUTH登录时会弹出警告,当然我们可以无视警告强制跳转。但本地客户端 CLI 也需要进行 SSL 交互,因此本地也需要添加 CA 证书。

否则会出现如下错误提示。

代码语言:javascript
复制
# ./ttn-lw-cli login --callback=false
  INFO Opening your browser on https://localhost:8885/oauth/authorize?client_id=cli&redirect_uri=code&response_type=code
  WARN Could not open your browser, you'll have to go there yourself error=exec: "xdg-open": executable file not found in $PATH
  INFO After logging in and authorizing the CLI, we'll get an access token for future commands.
  INFO Please paste the authorization code and press enter
> MF2XI.NBD2LLJIFOM4ZSOVXTH3GRZN5OMFFZCL3X7XMZQ.RLIIH45DV5467F6SRQMHW5GIL4MU7WMVJUMAMFYN43FF2AU4FNPA
 ERROR Could not exchange OAuth access token    error=Post https://localhost:8885/oauth/token: x509: certificate signed by unknown authority
Post https://localhost:8885/oauth/token: x509: certificate signed by unknown authority

本节则梳理如何在 centos 上添加 CA 证书。

1 TTN Stack 的证书要求

为了让 NS 的传输支持 TLS,Stack 需要 cert.pem 和 key.pem 这两个证书。

正常情况下,我们需要向证书认证机构获得这些证书。比如 Let’s Encrypt 就可以生成免费可信赖的 TLS 证书。“full chain” 用于 cert.pem,以及 “private key” 用于 key.pem。

在开发环境下,你可以生成自签名证书。如果你有 Go 开发环境,可以运行如下命令来为本机产生一个密钥和证书:

代码语言:javascript
复制
$ go run $(go env GOROOT)/src/crypto/tls/generate_cert.go -ca -host localhost

In order for the user in our Docker container to read these files, you have to change the ownership of the certificate and key:

代码语言:javascript
复制
$ chown 886:886 ./cert.pem ./key.pem

If you don’t do this, you’ll get an error saying something like /run/secrets/key.pem: permission denied.

记住,自签名证书无法被浏览器和操作系统所信任,会引起 警告和报错,例如 certificate signed by unknown authority 或者 ERR_CERT_AUTHORITY_INVALID。大多数浏览器可以添加一个例外。你也可以使用 CLI 配置来信任证书。

2 CA 证书基础

CA 是 Certificate Authority 的缩写,也叫“证书授权中心”。

https连接过程: 客户端发送请求到服务器端 服务器端返回证书和公开密钥,公开密钥作为证书的一部分而存在 客户端验证证书和公开密钥的有效性,如果有效,则生成共享密钥并使用公开密钥加密发送到服务器端 服务器端使用私有密钥解密数据,并使用收到的共享密钥加密数据,发送到客户端 客户端使用共享密钥解密数据 SSL加密建立………

3 centos 如何添加 CA 证书

这里介绍最简单的办法。

目前是把 lorawan-stack 目录下生成的 cert.pem 的内容追加到 CA 证书文件(/etc/pki/tls/certs/ca-bundle.crt)中。

END

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1 TTN Stack 的证书要求
  • 2 CA 证书基础
  • 3 centos 如何添加 CA 证书
  • END
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档