Ich habe schon ein paar erfolglose Versuche hinter mir eine MongoDB mit TLS / SSL auszustatten.
Es geht darum um eine Self-Hosted MongoDB v7.0 auf Ubuntu 22.04 mit KeyHelp.
Ich habe zwei Server:
1. mein Main-Server mit KeyHelp 24.0 (Build 3220)
2. mein Datenbank-Server mit Keyhelp 24.0 (Build 3220)
Main Server:
Dient als Nameserver und verwaltet auch die IP-Adresse für den Datenbank-Server
Ich habe dort zwei DNS Records angelegt für `A` und `SRV`.
Der A-Record dient dazu, den Hostname vom Datenbankserver
Code: Select all
datenbankserver.example.com
Zusätzlich habe ich auf dem Main-Server noch einen `SRV` Record am laufen, da ich den Port der MongoDB geändert habe. Das klappt auch ohne Probleme. Ich kann über die Domain auf meine MongoDB zugreifen, ohne den Port zu definieren:
Code: Select all
mongodb+srv://datenbankserver.example.com
Am wünschenswertesten wäre es, wenn ich direkt das Zertifikat von dem KeyHelp Control-Panel verwenden kann. Da eben die selbe Domain verwendet wird sollte dies auch kein Problem sein dachte ich. Also habe ich versucht diese Zertifikate zu verwenden.
Wenn ich MongoDB mit dem folgenden Befehl starte:
Code: Select all
mongod --setParameter tlsUseSystemCA=true --config /etc/mongod.conf
Code: Select all
tlsUseSystemCA=true
Code: Select all
Bei der Verbindung mit der Datenbank ist ein Fehler aufgetreten: MongooseServerSelectionError: unable to verify the first certificate
Als Zertifikate habe ich mich nach Dokumentation auf diesen Pfad beschränkt:
Code: Select all
/etc/ssl/keyhelp/letsencrypt/keyhelp/datenbankserver.example.com
Code: Select all
cert.pem chain.pem complete.pem fullchain.pem last.csr private.pem public.pem
Code: Select all
cert.pem
Code: Select all
cat privkey.pem >> cert.pem
dann frisst MongoDB die Konfiguration und startet. Aber eben wie gesagt mit diesem Fehler am Client:
Code: Select all
Bei der Verbindung mit der Datenbank ist ein Fehler aufgetreten: MongooseServerSelectionError: unable to verify the first certificate
Code: Select all
Bei der Verbindung mit der Datenbank ist ein Fehler aufgetreten: MongooseServerSelectionError: self-signed certificate
Code: Select all
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/mongodb/cert.pem -keyout /etc/ssl/mongodb/private.key
Ich würde aber gerne die MongoDB direkt auch mit den Lets Encrypt Zertifikaten ausstatten, die auch vom Server / KeyHelp verwendet werden. Da diese valide signiert sind und sich auch weiterhin automatisch erneuern. Wenndoch ich bei der Verbindung der beiden Daten evlt einen Cronjob bearbeiten müsste, damit diese auch von der MongoDb gefressen werden. Vielleicht startet die MongoDB auch nur weil etwas nur augenscheinlich passt.
Wo finde ich denn eine alternative CA-File zu den vom System; macht das überhaupt einen Unterschied? Denn das System ist ja eben mit diesen Zertifikaten valide verschlüsselt. Oder ist das nochmal ein Unterschied?
Es würde mir wirklich sehr weiterhelfen, wenn jemand Tipps oder Anregungen für mich hat. MongoDB in Verbindung mit KeyHelp wäre ein absoluter Obverkill!
Nützliche Links:
https://www.mongodb.com/docs/manual/tut ... igure-ssl/
https://jira.mongodb.org/browse/SERVER-72839
PS: Bei dem Versuch die Zertifikate manuell mit Certbot zu erstellen hatte ich auch nicht so wirklich einen Erfolg.
Code: Select all
This directory contains your keys and certificates.
`privkey.pem` : the private key for your certificate.
`fullchain.pem`: the certificate file used in most server software.
`chain.pem` : used for OCSP stapling in Nginx >=1.3.7.
`cert.pem` : will break many server configurations, and should not be used
without reading further documentation (see link below).
WARNING: DO NOT MOVE OR RENAME THESE FILES!
Certbot expects these files to remain in this location in order
to function properly!
We recommend not moving these files. For more information, see the Certbot
User Guide at https://certbot.eff.org/docs/using.html#where-are-my-certificates.
Ich hoffe ihr könnt mir weiterhelfen. Langsam wird es ein Kampf! Vielleicht gibt es ja unter KeyHelp sogar einen total einfachen Weg den ich bisher einfach nicht kenne. Wo finde ich denn unter KeyHelp eine CA-File die ich alternativ verwenden könnte?
Liebe Grüße!