Selbstsigniertes SSL-Zertifikat für den INSTAR MQTT-Broker
- OpenSSL
- Broker Zertifikat und Client Public Key
- Hinzufügen des Zertifikats zu Ihren Kameras
- Prüfung des MQTT-Netzwerks
Q: Wie kann ich ein benutzerdefiniertes SSL-Zertifikat für den INSTAR MQTT-Broker unter Windows 10 erstellen?
A: Um ein selbstsigniertes Zertifikat unter Windows 10 zu erstellen, müssen Sie zunächst OpenSSL installieren.
OpenSSL
Sie können eine Win64-Distribution von OpenSSL hier herunterladen. Möglicherweise benötigen Sie auch C++-Dist, die Sie unter diesem Link erhalten können In den meisten Fällen sollte letzteres aber bereits vorhanden sein.
Öffnen Sie nun eine Eingabeaufforderung als ADMINISTRATOR:
Wechseln Sie in das OpenSSL-Verzeichnis \bin - z.B. cd \Programme\OpenSSL-Win64\bin
für die 64bit-Version von OpenSSL. Hier können wir nun den OpenSSL-Befehl verwenden, um ein Zertifikat für unsere Kamera zu erstellen - Beachten Sie , dass Sie die IP-Adresse Ihrer Kamera (oder die Domäne - wenn Sie eine solche innerhalb Ihres lokalen Netzwerks zugewiesen haben) zu diesem Befehl hinzufügen müssen.
openssl req -x509 -nodes -subj "/CN=192.168.2.117" -newkey rsa:2048 -keyout private-key.pem -out cert.pem -days 365
Dieser Befehl erzeugt einen privaten
und öffentlichen Key
(Zertifikat) für die Kamera mit der IP-Adresse 192.168.2.117
- dies ist die IP-Adresse der Kamera, die ich als MQTT-Broker verwenden will. Bitte ändern Sie diese IP-Adresse in die IP-Adresse Ihrer eigenen Kamera. Sie finden danach die beiden Dateien im OpenSSL /bin-Verzeichnis - private-key.pem
und cert.pem
:
Broker Zertifikat und Client Public Key
broker.pem
Unsere Broker - in meinem Fall die 192.168.2.117
- benötigt beides - den privaten und den öffentlichen Schlüssel. Öffnen Sie beide Dateien und kopieren Sie den Inhalt von private-key.pem
ans Ende von cert.pem
. Speichern Sie diese neue Datei unter dem Namen broker.pem
. Das Ergebnis wird ungefähr so aussehen:
-----BEGIN PRIVATE KEY-----
vhjk78696hkgkfkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDPkmJujI3pia4z
+FeARMlURp/7oLyXXeV/qxWvVTdCXCX0QSGKvv0fopoRkzAmL3LCVJVsyv+meuhZ
4xW/cbt62Qvp7zI2fvJedUP42VJNzjuRRxRURcoD6/vm5E9hgrjKhO2U1xhRLgPS
xUSW/0MvjIs3eDwYMa3vRBp4DfhNnbKF7lOiO+7vajEK3vt9yzeghLlnYpDj6vCZ
AxQuP7Bv7Dgdfgfdsrtyu568fghj8gyouiuluiygfEJzOecoyTkx+6Y6MJ+7rB1t
pRk/je7zfUmthZ/0MhuBo9S6wAPGFNbP+nXE8bxx//BAcfrV9lSDU1NkG4iCgRxD
PRlPOfi3AgMBAAECggEAe1eR0/0DStW8RTd5z0eQltqMsDo4Nn3eJLnl3dT2TCFz
kCuvocGRqd22TWE4CEjDmYQncolB1oxMSzVsM+GCNSKKOM0g+k7++HAYHuQMSx2U
OeSRyO3bd+8fNXlPTjMeWYEZqAsUcRC1xuXftxYhtzx9cU2p7/p9T6MZU2OBu6Q5
4WIlFnsGr3Y3YXHZHjzndXwf2JR8zL94H2QamoA7JsnUxtWp2FZot4hSdQuuE8Fw
5ahYC7pW9pjTg9i+STAxDUCpt9ggb23AZMufRPYNAGJ6ckGb4LMAr2bxofEFgNde
ZBhRVssjdtykjd68r6tjkfkyuir67i8tkgdjd6wV8QKBgQD2fACkAYU9VOsbjruw
k/Uv1row5AoqIgGroUL/F4cr6mq0L5EMKDB5uK+FglU5DiKKkp7ESYFDlkrV4Bxs
1bmVIcBn3453456dfh456fghgfjW8AIHiC98u5wtcya9BMiuU3UACRYv++lBqJ1S
p/2RTlVwaThhsxbOw7+xPlJuOQKBgQDXlc9uRJG3Lm6NVRu1ngjSJpn9pTerG/7d
abyqAW+p3CyAPOkmlOBHBfXZ6P52yAnMJ8y18x+nd2OT66RATHv3q+fD0Kz4N8pL
1k05Lsqxf4U7W1ySrs6756dgkyukirf657edcjudi0FB1xuMQVzKBnerUumST1U+
jtOhVR2ebwKBgGDhJmNQEa2klfAz7sOdtA5EiNQ0nWYoDZ4G+U1IUyHItn3yAEHV
/g+prpt8OcD+NEdhD7Q46+zDwtBDkQiaDKJ4LKbVff/FOdwxANRNHZs3KTSvSyzo
szmEiAM5Mm2y1qnmNaN47taXXfwnqQZW7wxQzLYtNTL5cCp+t/aTd1TJAoGAPrb1
DfXikfBu9qxwkCf2FvRlzbTXee59+Pk+ihI64qYLSA7wIGokyGSCfa7a/8D3oK1f
Tvr4FWaU0D43nQDisrtu678rfyukjgt678FJM9ON9ZOBXaZcYnUhJb3tOirB26/5
F/HNRN+7zyR9fhKxpI+3Fl7bVdXATZ+NDxzMrf8CgYEA4jJdX0qum/EI4UTxPXhs
e301ki4p2Xad4mFnQWl3hPQYROcgMJoOl1nGokLK1fqJZRJPysG0IrX91PgZsHas
oCMiAzwFp6yByCP2VtfM3bSmHx4QKHFvPkn7srVHKti5B8j2E7KnF1txEa0Fj5Mx
gDSkEBWSsrtyu5678stshyjtyjftykfuky678rluxdtas34568rykgfhjkkxfdxj
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
dhxhxrth567edjytjdk6TZahDpmPZIwE9cq+C7C0unBj1AEwDQYJKoZIhvcNAQEL
BQAwGDEsr67y54e6dftyMTkyLjE2OC4yLjExNzAeFw0yMDAyMjgwOTIyNDRaFw0y
MTAyMjcwOsrhtdnt678r6ikjBgNVBAMMDTE5Mi4xNjguMi4xMTcwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPkmJujI3pia4z+FeARMlURp/7oLyXXeV/
qxWvVTdCXCX0QSGKvv0fopoRkzAmL3LCVJVsyv+meuhZ4xW/cbt62Qvp7zI2fvJe
dUP42VJNzjuaert5476sfhjdtyjdtyjKhO2U1xhRLgPSxUSW/0MvjIs3eDwYMa3v
RBp4DfhNnbKF7lOisrtu658ughjfvyukd5dxftjj6vCZAxQuP7Bv7Dg/WFrJHDK2
dkP06mImwCV415LZagM0cEJzOecoyTkx+6Y6MJ+7rB1tpRk/je7zfUmthZ/0MhuB
o9S6wAPGFNbP+nXE8bxx//BAcfrV9lSDU1NkG4iCgRxDPRlPOfi3AgMBAAGjUzBR
MB0GA1UdDgQW45srthyazregt45yfxghtyj6jdyWgTAfBgNVHSMEGDAWgBQKW176
GE+v0qlcImNqu0mGmdyWgTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA
A4IBAQA8/wmb+Sxdry65uvhjkhvztz4ebthxhjjSIl1J27X8rOKRNofLX3BRtyX9
mHLXHyYhuqaCAwGDohGoSqIkWejL4g+qQXZifW5We/MTByoWtB7aqKt3Wz0z8+TI
x/AkEo9bssIiNkEvUUlxQyFd7K/klHHw/dh3un3mGu2XrlzmbTqUlastW6n3bO11
UUS8aYC3L37VbjZQxug1ru9/I1j8I+mU272CEoI/eAXHyBd+GoZzREnxMyPzct7i
FHw7UMn2V6dJBtfZjOfqqX+xNTtZ9kQDaWO5s/JpRYX8hlfCKGD871J5ba4VfK1+
/rHJkgQLZaLk9Ysdtyu5678rdftjgyu9i87lhiolt67d56cyti67vhky7
-----END CERTIFICATE-----
client.pem
Jeder Client, den Sie mit Ihrem Broker verbinden wollen - z.B. eine zweite Kamera - benötigt nur den öffentlichen Schlüssel von cert.pem
. Öffnen Sie diese Datei und speichern Sie sie als client.pem
:
-----BEGIN CERTIFICATE-----
dhxhxrth567edjytjdk6TZahDpmPZIwE9cq+C7C0unBj1AEwDQYJKoZIhvcNAQEL
BQAwGDEsr67y54e6dftyMTkyLjE2OC4yLjExNzAeFw0yMDAyMjgwOTIyNDRaFw0y
MTAyMjcwOsrhtdnt678r6ikjBgNVBAMMDTE5Mi4xNjguMi4xMTcwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPkmJujI3pia4z+FeARMlURp/7oLyXXeV/
qxWvVTdCXCX0QSGKvv0fopoRkzAmL3LCVJVsyv+meuhZ4xW/cbt62Qvp7zI2fvJe
dUP42VJNzjuaert5476sfhjdtyjdtyjKhO2U1xhRLgPSxUSW/0MvjIs3eDwYMa3v
RBp4DfhNnbKF7lOisrtu658ughjfvyukd5dxftjj6vCZAxQuP7Bv7Dg/WFrJHDK2
dkP06mImwCV415LZagM0cEJzOecoyTkx+6Y6MJ+7rB1tpRk/je7zfUmthZ/0MhuB
o9S6wAPGFNbP+nXE8bxx//BAcfrV9lSDU1NkG4iCgRxDPRlPOfi3AgMBAAGjUzBR
MB0GA1UdDgQW45srthyazregt45yfxghtyj6jdyWgTAfBgNVHSMEGDAWgBQKW176
GE+v0qlcImNqu0mGmdyWgTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA
A4IBAQA8/wmb+Sxdry65uvhjkhvztz4ebthxhjjSIl1J27X8rOKRNofLX3BRtyX9
mHLXHyYhuqaCAwGDohGoSqIkWejL4g+qQXZifW5We/MTByoWtB7aqKt3Wz0z8+TI
x/AkEo9bssIiNkEvUUlxQyFd7K/klHHw/dh3un3mGu2XrlzmbTqUlastW6n3bO11
UUS8aYC3L37VbjZQxug1ru9/I1j8I+mU272CEoI/eAXHyBd+GoZzREnxMyPzct7i
FHw7UMn2V6dJBtfZjOfqqX+xNTtZ9kQDaWO5s/JpRYX8hlfCKGD871J5ba4VfK1+
/rHJkgQLZaLk9Ysdtyu5678rdftjgyu9i87lhiolt67d56cyti67vhky7
-----END CERTIFICATE-----
Hinzufügen des Zertifikats zu Ihren Kameras
Laden Sie nun die Datei broker.pem
über das SSL-Menü auf Ihre Broker-Kamera hoch.:
Stellen Sie nun sicher, dass das benutzerdefinierte Zertifikat aktiviert ist, und starten Sie Ihre Kamera neu:
Wechseln Sie zu der Kamera, die Sie als Client mit Ihrem Broker verbinden möchten, und laden Sie die Datei client.pem
über das MQTT Menü hoch.:
Die MQTT Konfiguration Ihrer beiden Kameras sollte nun so aussehen (ersetzen Sie nur die IP-Adressen durch die IPs Ihrer Kameras):
Sie können jetzt alle Ihre verbleibenden INSTAR-Full-HD-Kameras auf die gleiche Weise zu Ihrer Brokerkamera hinzufügen.
Prüfung des MQTT-Netzwerks
Um zu überprüfen, ob die Verbindung erfolgreich war, können Sie das MQTT-Protokoll auf jeder Kamera unter /tmpfs/mqtt-log
abrufen:
Die Brokerkamera sollte Ihnen zeigen, dass sie mit dem lokalen MQTT-Broker 127.0.0.1
über Ihren Nicht-SSL-Port (Standard 1883
) verbunden ist:
[Info] Translations loaded: 266
[Info] Initalize Mqtt
[Info] Authenticate with Mqtt-Broker
[Info] Connect to Mqtt-Broker 127.0.0.1 on port 1883...
[Info] Initialize Fifo-Watcher
[Warning] A file at the fifo filepath already exists, delete file and retry!
[Info] Start Fifo-Watcher-Thread
[Info] Start listening...
[Info] Open fifo
[Info] Synchronize Cgi-Server with Mqtt-Broker
Und Ihre Client-Kameras sollten mit der IP-Adresse Ihrer Brokerkamera (in meinem Fall 192.168.2.117
) über den SSL-Port (Standard) 8883
mit aktiviertem TLS verbunden sein:
[Info] Translations loaded: 266
[Info] Initalize Mqtt
[Info] Authenticate with Mqtt-Broker
[Info] Activate TLS
[Info] Connect to Mqtt-Broker 192.168.2.117 on port 8883...
[Info] Initialize Fifo-Watcher
[Warning] A file at the fifo filepath already exists, delete file and retry!
[Info] Start Fifo-Watcher-Thread
[Info] Start listening...
[Info] Open fifo
[Info] Synchronize Cgi-Server with Mqtt-Broker
Der letzte Eintrag [Info] Synchronize Cgi-Server with Mqtt-Broker
zeigt Ihnen, dass die Verbindung erfolgreich war und alle beibehaltenen MQTT-Themen bei Ihrem MQTT-Broker veröffentlicht wurden. Falls dieser fehlt, ist etwas bei der SSL-Verbindung schiefgegangen.
MQTT.fx
Sie können jetzt ein Programm wie MQTT.fx mit Ihrem Broker verbinden, um zu versuchen, Befehle an alle Kameras in Ihrem MQTT-Netzwerk zu senden:
Beachten Sie, dass Sie auch hier die client.pem
-Datei verwenden müssen, um sich per SSL mit dem Netzwerk zu verbinden - dieselbe Datei, die Sie auf alle Client-Kameras hochgeladen haben!
Abonnieren Sie das Platzhalter-Topic #
- Sie sollten die zurückgehaltenen retained
Meldungen aller Ihrer angeschlossenen Kameras sehen:
Und über das Publish Menü Befehle an Ihre Kameras senden können.