东东
发布于 2023-03-29 / 67 阅读 / 0 评论 / 0 点赞

TLS证书生成及测试

TLS证书生成及测试

环境准备

openssl

根证书

1、先生成自签名的CA证书要用的私钥

openssl genrsa -out ca.key 2048

2、生产CA证书

openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.pem

3、查看证书

openssl x509 -in ca.pem -noout -text

服务端证书

1、新建一个配置文件openssl.cnf

  • req_distinguished_name :根据情况进行修改,
  • alt_names: BROKER_ADDRESS 修改为 EMQX 服务器实际的 IP 或 DNS 地址,例如:IP.1 = 127.0.0.1,或 DNS.1 = broker.xxx.com
[req]
default_bits  = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = CN
stateOrProvinceName = Zhejiang
localityName = Hangzhou
organizationName = EMQX
commonName = Server certificate
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = BROKER_ADDRESS
DNS.1 = BROKER_ADDRESS

2、生成一个服务端私钥

openssl genrsa -out server.key 2048

3、生成一个服务端证书请求

openssl req -new -key ./emqx.key -config openssl.cnf -out server.csr

4、使用根证书来生成服务端证书

openssl x509 -req -in ./server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.pem -days 3650 -sha256 -extensions v3_req -extfile openssl.cnf

验证证书

openssl verify -CAfile ca.pem server.pem
server.pem: OK

客户端证书

先生成一个私钥

openssl genrsa -out client.key 2048

生成客户端证书请求

openssl req -new -key ./emqx.key -config openssl.cnf -out client.csr

使用根证书来生成服务端证书

openssl x509 -req -in ./client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem -days 3650 -sha256 -extensions v3_req

文件转换

pem转crt

openssl x509 -in client.pem -out client.crt -outform der

文件验证

openssl x509 -noout -text -in example.crt

TB里面配置

1、将生成的证书文件放在conf中

2、更改配置

#mqtt-ssl
MQTT_SSL_ENABLED=true
MQTT_SSL_CREDENTIALS_TYPE=PEM
MQTT_SSL_PEM_CERT=/config/thingsboard-server.pem
MQTT_SSL_PEM_KEY=/config/thingsboard-server.key
MQTT_SSL_PEM_KEY_PASSWORD=

3、重启服务

连接测试