-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Aqui você encontra todas as informações de como utilizar o servidor Morpheus.
Para iniciar o Mosquitto Broker:
sudo systemctl start mosquitto.service
Cada tópico deverá seguir a forma: hw/<HOUSE_LOCATION>/[sensors|actuators]/<NAME>
Exemplo da criação de um client subscriber: mosquitto_sub -V mqttv311 -t hw/kitchen/sensors/temperature -d
- -V: Versão do MQTT (v3.1.1)
- -t: Tópico
- -d: Debug mode
Exemplo da criação de um client publisher: mosquitto_pub -V mqttv311 -t hw/kitchen/sensors/temperature -m "10 c" -d
- -V: Versão do MQTT (v3.1.1)
- -t: Tópico
- -m: mensagem
- -d: Debug mode
Vamos usar o protocolo TLS (Transport Layer Security), com certificados gerados por X.509 Public Key Infrastructure (PKI).
Cria autoridade certificadora, gerando a chave privada raiz em ca.key: openssl genrsa -out ca.key 2048
Cria um arquivo crt auto assinado (em PEM, privacy enhanced mail, format), com a chave gerada anteriormente: openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
Mostra os dados da autoridade certificadora: openssl x509 -in ca.crt -noout -text
Gera a chave que será usada para o certificado do servidor: openssl genrsa -out server.key 2048
Gera o certificado do servidor. Parte mais importante é o common name, com o IP do servidor: openssl req -new -key server.key -out server.csr
Usa a autoridade certificadora criada para assinar o certificado gerado para o servidor, gerando o arquivo .crt: openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650 -sha256
- server.key: Server key
- server.csr: Server certificate signing request
- server.crt: Server certificate file
Adicione em mosquitto.conf:
# MQTT over TLS listener 8883 cafile /etc/mosquitto/certificates/ca.crt certfile /etc/mosquitto/certificates/server.crt keyfile /etc/mosquitto/certificates/server.key
Gerar a chave para cada dispositivo: openssl genrsa -out device001.key 2048
Gera Certificate Sigining Request (CSR) para o dispositivo: openssl req -new -key device001.key -out device001.csr
Gera o certificado para o cliente, com a autoridade certificadora criada anteriormente: openssl x509 -req -in device001.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out device001.crt -days 3650 -sha256 -addtrust clientAuth
Para o certificado do cliente, por ser auto assinado (Trusted certificate) deve-se converter a codificação, de PEM para DER: openssl x509 -in device001.crt -outform der -out device001.der
Caso não seja realizado esse procedimento, será lançada uma exceção do tipo java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor.