Ja, hatte tatsächlich Glück, dass ich im Januar ein gutes Angebot hier hatte.
Posts by MrSpock
-
-
Habe es jetzt gelöst. Danke für Eure Hilfe.
Habe zuerst einmal das Portforwarding direkt über die Console eingerichtet:
ssh -L 1234:v123456789xxx.supersrv.de:3050 user@v123456789xxx.supersrv.de
Dann konnte ich erkennen, dass die Verbindung zustandekommt. Aber der Firebird Server hat keine Verbindung zur Datenbank zugelassen. In der firebird.conf habe ich dann gesehen, dass als Remothost nur localhost zugelassen war und damit eine Verbindung von außen ausgeschlossen war. Das habe ich gändert. Dann war noch die WireCrypt Einstellung auf dem Server und dem Client unterschiedlich. Nachdem ich diese angeglichen habe, hat es dann funktioniert. Dann habe ich die Verbindung wieder in dem Fenster bei DBeaver eingegeben, in dem Shellcommands vor Verbindungsverstellung eingetragen werden.
Jetzt funktioniert es so, wie gewollt.
-
Ja, ist der Standardport für Firebird.
-
Ist da nicht ein Slash zuviel?
Ja, Schreibfehler. Habe nur einen /
-
Habe jetzt gerade bei RazorSQL folgendes gefunden:
ssh -L local_port:database_host:remote_database_port username@database_host
Müsste dann der Eintrag nicht wie folgt aussehen:ssh -L 1234:v123456789xxx.supersrv.de:3050 user@v123456789xxx.supersrv.de
Funktioniert aber auch nicht.
-
Habe jetzt folgendes eingegeben:
ssh user@v123456789xxxx.supersrv.de -L1234:127.0.0.1:3050
user ist der neu angelegte user, v12... steht für meinen VServer. Firebird nutzt 3050 als Standardport.
Bei der Verbindung steht dann:
jdbc:firebirdsql://localhost:1234//pfad/zu/db.fdb
Dann kommt: Connection refused (Connection refused)
-
Danke, habe mir das angeschaut. Was muss ich denn als shell Befehl eingeben? Das gleiche, was ich in der shell eingebe? Also einfach
ssh user@v123456789xxxxx.supersrv.de
Das funktioniert leider nicht.
-
DBeaver braucht laut kurzer Recherche einen privaten Schlüssel im RSA-Format. Wie sieht die erste Zeile Deiner Schlüsseldatei aus?
-----BEGIN OPENSSH PRIVATE KEY-----
Die nächste Zeile ist bereits verschlüsselt.
Ich habe aber sicher einen rsa Key erstellt: sudo ssh-keygen -b 4096 -t rsa -f ~/.ssh/<id_vhost_name> steht noch in der History
Die Java-SSH Implementierung JSCH kann kein ed25519, vgl. http://www.jcraft.com/jsch/ und Feature Request: Add support for Ed25519 (2015).
Das ist aber nicht schlimm, du kannst in DBeaver einfach mit dem System-Client die SSH-Verbindung aufbauen, vgl. https://github.com/dbeaver/dbe…35#issuecomment-364732736 . Da du ja sicherlich den ssh-agent benutzt, geschieht das komplett automatisch im Hintergrund
Danke, das schaue ich mir mal an.
-
Habe jetzt einen neuen User angelegt, ein rsa Schlüsselpaar erzeugt und mit Passwort verschlüsselt. Ich kann mich mit dem neuen User und dem neuen rsa Schlüssel über ssh an der Konsole anmelden. DBeaver meldet aber weiterhin invalid private key. In der Log Datei finde ich:
Quote2019-02-08 20:18:01.395 - Instantiate SSH tunnel
2019-02-08 20:18:01.396 - Connect to tunnel host
2019-02-08 20:18:01.396 - SSH INFO: Connecting to v1234567890xxxxx.supersrv.de port 22
2019-02-08 20:18:01.420 - SSH INFO: Connection established
2019-02-08 20:18:01.449 - SSH INFO: Remote version string: SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4
2019-02-08 20:18:01.450 - SSH INFO: Local version string: SSH-2.0-JSCH-0.1.54
2019-02-08 20:18:01.450 - SSH INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
2019-02-08 20:18:01.452 - SSH INFO: aes256-ctr is not available.
2019-02-08 20:18:01.453 - SSH INFO: aes192-ctr is not available.
2019-02-08 20:18:01.453 - SSH INFO: aes256-cbc is not available.
2019-02-08 20:18:01.453 - SSH INFO: aes192-cbc is not available.
2019-02-08 20:18:01.454 - SSH INFO: CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
2019-02-08 20:18:01.479 - SSH INFO: CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
2019-02-08 20:18:01.480 - SSH INFO: SSH_MSG_KEXINIT sent
2019-02-08 20:18:01.502 - SSH INFO: SSH_MSG_KEXINIT received
2019-02-08 20:18:01.503 - SSH INFO: kex: server: curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
2019-02-08 20:18:01.504 - SSH INFO: kex: server: ssh-ed25519
2019-02-08 20:18:01.505 - SSH INFO: kex: server: chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
2019-02-08 20:18:01.505 - SSH INFO: kex: server: chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
2019-02-08 20:18:01.506 - SSH INFO: kex: server: hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
2019-02-08 20:18:01.507 - SSH INFO: kex: server: hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
2019-02-08 20:18:01.507 - SSH INFO: kex: server: none,zlib@openssh.com
2019-02-08 20:18:01.508 - SSH INFO: kex: server: none,zlib@openssh.com
2019-02-08 20:18:01.508 - SSH INFO: kex: server:
2019-02-08 20:18:01.508 - SSH INFO: kex: server:
2019-02-08 20:18:01.509 - SSH INFO: kex: client: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
2019-02-08 20:18:01.510 - SSH INFO: kex: client: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
2019-02-08 20:18:01.510 - SSH INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
2019-02-08 20:18:01.511 - SSH INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
2019-02-08 20:18:01.511 - SSH INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
2019-02-08 20:18:01.512 - SSH INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
2019-02-08 20:18:01.512 - SSH INFO: kex: client: none
2019-02-08 20:18:01.512 - SSH INFO: kex: client: none
2019-02-08 20:18:01.513 - SSH INFO: kex: client:
2019-02-08 20:18:01.513 - SSH INFO: kex: client:
2019-02-08 20:18:01.513 - SSH INFO: Disconnecting from v1234567890xxxxx.supersrv.de port 22
2019-02-08 20:18:23.915 - DBeaver is stopping
2019-02-08 20:18:23.916 - Stop RMI server
Was könnte die Ursache sein, dass der Schlüssel als invalid erklärt wird, obwohl ich mich über sie Shell mit ssh und diesem Schlüssel anmelden kann?
-
vmk Das ist richtig.
Mein Ansatz ist/war folgender: per Konsole meldest er sich mit Benutzer B1 & Key1 an; über JDBC hat er aber eventuell einen anderen Benutzer und meldet sich hier mit B2 & Key1 an. wodurch JDBC eine invalid Key Meldung ausgibt weil B2 eigentlich nicht den Schlüssel von B1 kennen sollte.
Bei beiden Programmen kann ich in der SSH Tunnel Konfiguration einen Nutzer angeben. Dort benutze ich B1, genau wie beim Zugriff über ssh in der Konsole.
Du hast als Schlüsselformat sicherlich ed25519 gewählt und deine Software nutzt eine uralte Java-Version die das nicht unterstützt. Du könntest als Workaround versuchen den ssh-agent nutzen bzw. stellst in der Software ein das das System SSH verwendet wird (falls die Software das kann).
Ja, ich glaube ich habe ed25519 als Schlüsselformat verwendet. Bei beiden Programmen habe ich die aktuellste Version geladen, die sogar von diesem Jahr ist, so dass wahrscheinlich keine uralt Version von Java verwendet wird. Das mit dem Workaround verstehe ich nicht. Die beiden Programme nutzen ja ssh (als Tunnel zum Server), wie genau soll ich hier einen ssh-Agenten einsetzen?
Bensen : Ein Account kann mehrere Public-Keys haben und 1 Benutzer kann auch mehrere Keys haben. ssh probiert durch alle erlaubten Keys, das sieht man bei ssh -v user@host. Zusätzlich gibt es noch die ~/.ssh/config wo man dediziert pro Host verschiedene Optionen wie Ports, Keys, etc definieren kann.
Ich werde dann einmal einen rsa Schlüssel erstellen und den als Zweitschlüssel für den Benutzer B1 verwenden. Diesen werde ich dann mit Passwort verschlüsseln und versuchen diesen bei den Programmen zu nutzen.
-
Hallo,
ich habe meinen Server wie in Infosec empfohlen abgesichert. Dazu habe ich ein Schlüsselpaar mit ssh-keygen erzeugt. Bei der Erstellung der Schlüssel habe ich kein Passwort vergeben. Die Anmeldung über die Mac Konsole mittels ssh bei meinem VServer funktioniert auch über das erzeugte Schlüsselpaar.
Ich nutze auf meinem Server Firebird 3.0 und möchte mit einem der beiden Mac Toos (RazorSQL oder DBeaver) auf eine FB-Datenbank auf meinem VServer zugreifen. Beide Tools nutzen JDBC für den Zugriff und im Connection Dialog kann ich in beiden Systemen einen ssh Tunnel zum Server konfigurieren. Dazu gebe ich die vhost Adresse und den Port 22 an, meinen User und den privaten Schlüssel. Das ist exakt dieselbe Konfiguration, mit der ich auch über die Shell zugreife. Beide Tools können aber den Tunnel nicht herstellen und melden, der private Schlüssel sei invalid. Ich habe mich einmal durch die log Dateien der beiden Anwendungen gewühlt und dabei ist mir aufgefallen, dass ein Tool im Log File den Eintrag hatte, dass das Passwort Feld leer sei. Das stimmt, weil ich ja bei der Schlüsselgenerierung keines vergeben habe. Hat irgendjemand Erfahrung mit ssh Tunnel über JDBC, welche erklären könnte, warum die Tools meinen, der Schlüssel sei invalid, während derselbe Schlüssel in der Konsole funktioniert?
-
diese v123456789.supersrv.de wird dir irgendwann um die Ohren fliegen. Spätestens wenn supersrv.de auf einer blacklist landet. Das musst nicht du verschuldet haben, sondern es reicht wenn ein anderer Kunde mit der selben TLD dies verursacht. Dies kam in letzter Zeit ein paar mal mit netcup.de vor, worauf hin dass CCP nicht erreichbar war.
Was spricht gegen eine eigene Domain für den Server, oder Subdomain deiner vorhandenen Domain?
Symlinks müssten eigentlich gehen da LE (ohne froxlor) die eigentlichen Zertifikate selbst aus archive in live linkt.
Allerdings hatte ich Schwierigkeiten die Zertifikate der Serverdomain mit froxlor verwalten zu lassen und habe mir dafür certbot und ein cron eingerichtet um die Zertifikate regelmässig erneuern zu lassen.
Das ist ein interessanter Ansatz, Froxlor in eine Subdomain meine Domain auszulagern. Wie müsste ich dazu vorgehen, wenn ich eine neue Subdomain angelegt habe?
-
Hallo eripek,
natürlich habe ich froxlor auch schon über https://vxxxxxxxxxxxxxxxx.supersrv.de/froxlor/ also der mir von netcup zugewiesenen vhost Nummer aufgerufen, also mit einem Domain Namen, dieser ist aber eben nicht myDoamin.de. Deshalb wäre es interessant, ob und ggf. wie ich auch für diese Domain einen Letsencrypt Key erstellen lassen kann und das ggf. mit Froxlor verwalten kann.
Quote
Anmerkung: mod_http2 vielleicht noch aktivieren?Habe ich nicht gebraucht bzw. es war vielleicht schon aktiviert.
-
Fortsetzung
wieder aus nichteinschaltend.de:
QuoteLetsencrypt verwenden
Anschließend in den Einstellungen einer Domain den Port 443 für die jeweilige IP Adresse auf der die Domain auch unter Port 80 läuft aktivieren. Den Haken bei Letsencrypt setzen und ganz wichtig: kein Alias auswählen, da Letsencrypt kein Wildcard kann. Ich würde WWW empfehlen, damit in das Zertifikat auch die Subdomain www. eingetragen wird.
Dazu also im Froxlor Panel Ressourcen Domains auswählen. Unter der gewünschten Domain den Bleistift unter Optionen anklicken, um zu den Einstellungen zu gelangen. Dort unter Webserver SSL-Einstellungen
-
SSL-IP-Adresse(n):
Definiere eine oder mehrere IP-Adresse(n) für diese Domain. -> hier die vorgegebene IP mit Port :443 auswählen
-
SSL Zertifikat erstellen (Let's Encrypt):
Holt ein kostenloses Zertifikat von Let's Encrypt. Das Zertifikat wird automatisch erstellt und verlängert.
ACHTUNG: Wenn Wildcards aktiviert sind, wird diese Option automatisch deaktiviert. Dieses Feature befindet sich noch im Test -> anwählen, damit ein Letsencrypt Schlüssel generiert wird.
Einträge sichern und warten!
Warum warten? Mit dem "SSL Zertifikat erstellen" oben, wird ein cronjob erstellt, der erstmalig und dann alle 3 Monate ein neues Zertifikat für diese domain erstellt. Diese wird erst nach 5 (-15) Minuten ausgeführt. Wenn man aber -wie ich- die Nerven verliert, kann man wie unter nichteinschaltend.de beschrieben auch noch folgende Befehle eingeben:
Quotephp
/var/www/froxlor/scripts/froxlor_master_cronjob
.php --force --debug
php -q
/var/www/froxlor/scripts/froxlor_master_cronjob
.php --letsencrypt --debug
Dort bitte auch genau lesen, ob alles funktioniert hat. Bei mir wurde beim Ausstellen des ersten Zertifikats noch einige Fragen gestellt, nach Domain, E-Mail Adresse und so. Diese habe ich nach bestem Wissen beantwortet.
Wenn alles funktioniert hat, entstehen 5 Dateien:
Quote-rw------- 1 root root 1647 Feb 1 22:28 myDomain.de_CA.pem
-rw------- 1 root root 1647 Feb 1 22:28 myDomain.de_chain.pem
-rw------- 1 root root 2269 Feb 1 22:28 myDomain.de.crt
-rw------- 1 root root 3917 Feb 1 22:28 myDomain.de_fullchain.pem
-rw------- 1 root root 3272 Feb 1 22:28 myDomain.de.key
Mit dem Befehl sudo cp habe ich dann die .crt und .key Datei nach /etc/ssl/private kopiert. Hier wäre interessant, ob auch ein symbolischer Link funktioniert. Das hatte ich einmal probiert, hatte aber nicht funktioniert, kann aber auch noch an einem anderen Fehler gelegen haben.
Noch ein Hinweis: solltet ihr eine Firewall verwenden z.B. ufw, dann noch den Port 443 für alle IPs freischalten.
Nach diesen Schritten ist meine Domain jetzt unter https erreichbar.
Neben der Frage des Links vs. einer Kopie der beiden Schlüsseldateien, habe ich noch folgenden offenen Punkt. Da ich "nur" eine IP habe, nutzt meine Domain dieselbe IP wie z.B. Froxlor. Wenn ich also mineIP/froxlor eingebe und ganz frech einfach ein https davor setze, stellt der Browser fest, dass der Schlüssel zu dieser IP auf myDomain.de ausgestellt ist und verweigert den Zugriff. Da ich aber weiß, dass dieser Schlüssel richtig ist, habe ich eine Ausnahme hinzugefügt und kann jetzt auch Froxlor unter https erreichen. Schöner wäre natürlich ein korrekter Schlüssel dazu. Wie das geht, darf gerne jemand anderes beschreiben.
-
SSL-IP-Adresse(n):
-
Fortsetzung
Aus nichteinschaltend.de:
QuoteSchritt 2 und 3
Unter Konfiguration nun die Distribution auswählen (hier Debian 8), den Service (hier Webserver) und die konkrete Anwendung, die auf dem Server installiert ist (hier Apache2). Eine neue Konfigurationsdatei acme.conf ist verfügbar und muss unter dem angegebenen Pfad angelegt werden: /etc/apache2/conf-enabled/acme.conf
Ich habe bei mir im Froxlor Panel unter System Konfiguration gewählt. Unter
- Distribution: Debian Stretch (9.x)
- Service: Webserver (HTTP)
- Daemon: Apache 2.4 (standard)
Starten auswählen:
Bei mir steht dort man soll folgende Befehle auf der ssh Konsole eingeben:
- apt-get install apache2
Das würde den Apache2 Server installiert und ist bei den meisten nicht notwendig. Wenn ihr den Befehl trotzdem eingebt, wird das System eine entsprechende Meldung ausgeben.
Dann folgt:
- mkdir -p /etc/apache2/sites-enabled/
- chown root:0 /etc/apache2/sites-enabled/
- chmod 0600 /etc/apache2/sites-enabled/
Mit diesen 3 Befehlen würde ein Verzeichnis /etc/apache2/sites-enabled erstellt und die Rechte vergeben werden. Sollte bei euch ein solches Verzeichnis schon existieren (auf der Konsole nachschauen) könnt ihr die Schritte weglassen.
- mkdir -p /etc/apache2/sites-enabled/
- chown root:0 /etc/apache2/sites-enabled/
- chmod 0600 /etc/apache2/sites-enabled/
Trotz mehrfachen Überprüfens finde ich keinen Unterschied zu den ersten 3 Befehlen. Also weglassen!
- mkdir -p /var/customers/webs/
- mkdir -p /var/customers/logs/
- mkdir -p /var/customers/tmp
- chmod 1777 /var/customers/tmp
Auch hier werden Verzeichnisse erstellt und Rechte vergeben. Aber auch diese 3 Verzeichnisse existieren in der Regel bereits. Dann können diese Befehle auch weggelassen werden.
- a2dismod userdir
a2dismod deaktiviert Module des Apache2 Servers. Hier wird ausgeschaltet, dass einem user automatisch ein Verzeichnis zugewiesen wird. Diesen Befehl eingeben.
- a2enmod headers
a2enmod aktiviert Module für Apache. Diesen Befehl eingeben.
- a2enmod ssl
Und das ist wichtig: Aktivieren des ssl Moduls für Apache.
Anschließend mit dem Lieblingseditor die Konfigurationsdatei öffnen:
- /bin/nano /etc/apache2/conf-enabled/acme.conf
Wenn nano installiert ist, kann in der Rege auch das /bin weggelassen werden, einfach: nano /etc/apache2 ...
In diese Datei einfach folgendes hineinkopieren:
QuoteAlias "/.well-known/acme-challenge" "/var/www/froxlor/.well-known/acme-challenge"
<Directory "/var/www/froxlor/.well-known/acme-challenge">
Require all granted
</Directory>
Und in nano mit "ctrl o" die Datei speichern und mit "crtl x" verlassen.
jetzt noch Apache2 Neustart:
- /etc/init.d/apache2 restart
Die meisten hier gezeigten Befehle benötigen root Rechte. Wenn ihr einen anderen user mit sudo Rechten benutzt, muss den meisten Befehlen sudo vorangestellt werden.
In meinem langen Weg zu einem erfolgreichen Setup, ist es mit immer wieder passiert, dass der Apache Server sich nicht mehr starten ließ! Das meldet der Befehl /etc/init.d/apache2 restart dann auch sofort zurück. Dabei gibt er auch an, in welchen beiden log Dateien man zusätzlich Infos bekommt. Diese bitte (ggf. mit sudo) so eingeben, wie in der Rückmeldung steht. In der Regel gab es bei mir falsche Einstellungen in Froxlor. Da aber der Apache2 jetzt nicht läuft, kommt man auch nicht mehr in Froxlor rein.
Deshalb liegt die Lösung (fast) immer in dem Verzeichnis /etc/apache2/sites-enabled. Hier legt Froxlor alle Konfigurationen der Domains ab. Und wenn in den Log Dateien steht, dass hier z.B. ein Eintrag in einer dieser Dateien steht, der zu einem Fehler führt, z.B. in der Datei
35_froxlor_ssl_vhost_myDomain.de.conf
dann diese Datei mit
- sudo nano
anpassen oder mit
- sudo mv 35_froxlor_ssl_vhost_myDomain.de.conf 35_froxlor_ssl_vhost_myDomain.de.conf.hide
umbenennen, damit apache2 beim Restart diese Datei nicht mehr findet. Er schaut nur nach .conf Dateien.
Mit diesen beiden Methoden konnte ich dann Apache2 immer wieder starten, dann in Froxlor rein und dort die Einstellungen korrigieren, denn ansonsten wird nach dem nächsten cronjob die conf Datei wieder falsch geschrieben.
Fortsetzung folgt
-
Nachdem es bisher kein "Tutorial" zu diesem Them gab, versuche ich mich einmal daran, eine Anleitung zu schreiben und zu kommentieren.
Ich denke viele sehen die Notwendigkeit einen gesicherten Zugang zu einigen Domains mit Froxlor einzurichten.
Die wesentlichen Schritte die notwendig sind, sind hier gut beschrieben.
Deshalb werde ich mich an dieser Beschreibung entlang bewegen:
QuoteSchritt 1
Letsencrypt wird direkt als Admin in Froxlor unter Einstellungen => SSL Einstellungen aktiviert. In der Übersicht der Einstellungen natürlich auch noch SSL aktiv schalten.
Man geht dazu in das Froxlor Server Management Panel und wählt auf der linken Seite unter System den Eintrag Einstellungen, dort findet man dann recht weit oben SSL Einstellungen, bei denen normalerweise noch aktiviert: Nein steht. Das Nein ändert man zu Ja. Dann erscheint rechts in der Zeile ein neuer Eintrag Einstellungen. Das klickt man an und kommt so zu den SSL-Einstellungen. Dort sind 3 Änderungen zu machen:
-
Aktiviere SSL
Erlaubt die Nutzung von SSL für den Webserver -> hier den Eintrag aktivieren -
Pfad zum SSL-Zertifikat
Geben Sie den Pfad inklusive Dateinamen des Zertifikats an (meist .crt or .pem). -> Hier habe ich /etc/ssl/private/myDomain.de.crt gewählt
Kommentar: zunächst müsst Ihr natürlich myDomain.de durch eure Domain ersetzen. Ist die Wahl des Verzeichnis richtig? Dieses Verzeichnis erlaubt Zugriff der Gruppe ssl-cert:
drwx--x--- 2 root ssl-cert 4096 Feb 1 22:30 private
Das spricht dafür. Andererseits wird später der Letsencrypt Schlüssel erzeugt (5 Dateien), aber in einem anderen Verzeichnis /etc/ssl/froxlor-custom abgelegt, welches root / root gehört. Ich habe deshalb die crt Datei (dazu später mehr) von froxlor-custom nach private kopiert. Ob auch ein Link funktioniert weiß ich nicht. Wenn es funktioniert, wäre das gut, weil man ansonsten alle 3 Monate, wenn ein neuer Schlüssel über den cronjob erzeugt wird. Wieder eine Kopie gemacht werden muss. -
Pfad zum SSL Private-Key
Geben Sie den Pfad inklusive Dateinamen der Schlüssel-Datei an (der private-key, meist .key). -> Hier habe ich /etc/ssl/private/myDomain.de.key gewählt
Kommentar: wie in Punkt 2
Zusätzlich zu diesem Schritt würde ich gleich noch den Port anlegen:
Dazu im Froxlor Panel links unter Ressourcen IPs und Ports wählen.
Dort IP/Port hinzufügen wählen und dort die IP eintragen (die auch für Port 80 benutzt wird und die ihr von netcup erhalten habt) und als Port 443 eintragen (Standard https Port). Zusätzlich sind noch 3 Einträge zu machen unter Webserver-SSL-Konfiguration:
- Ist dies ein SSL-Port? -> Ja anklicken
- Pfad zum Zertifikat: den gleichen Pfad wie oben unter Punkt 2 eintragen (/etc/ssl/private/myDomain.de.crt)
- Pfad zum SSL-Private-Key: wie oben unter Punkt 3 (/etc/ssl/private/myDomain.de.key)
Einträge speichern!
Fortsetzung folgt im nächsten Beitrag.
-
Aktiviere SSL
-
So, habe es jetzt im wesentlichen auf Basis des Artikels auf nichteinschalten.de und mit Zusatzinformationen durch Eure Beiträge hinbekommen.
Habe den Server jetzt so eingerichtet, dass er das DreamFactory Framework über https zur Verfügung stellt und mir eine REST API auch für Firebird Datenbanken zur Verfügung stellt. ?
Ich werde versuchen noch einmal eine kommentierte Anleitung zur Verfügung zu stellen, wie Froxlor und Letsencrypt eingerichtet werden können.
-
Bin wieder ein Stück weiter. Habe noch einmal im Verzeichnis /etc/ssl/froxlor-custom/ nachgeschaut und neben den 3 oben genannten Dateien gibt es noch 2 weitere Datein <meine domain>.crt und <meine domain>.key
Diese scheinen doch genau das zu sein, was ich benötige!
Deshalb habe ich diese Dateinamen inkl. Pfad jetzt eingetragen. Das System findet diese noch nicht. Kann das an den Berechtigungen liegen?
Quote-rw------- 1 root root 2273 Feb 1 19:20 <meine domain>.de.crt
Die Datei gehört root und kann nur von solchen Mitgleidern gelesen und geschrieben werden. Ist das ok?
-
Die Apache.pem kommt vermutlich aus den Apache-Configs. Letsencrypt legt seine Zertifikate in /etc/letsencrypt/live/domai.name/ ab. Dort sind je eine cert.pem, chain.pem, fullchain.pem und privkey.pem zu finden.
Du wirst in aller Regel
SSLCertificateKeyFile privkey.pem
und
SSLCertificateFile fullchain.pem
verwenden wollen.
In Froxlor kannst Du für den Froxlor-Host selbst die Zertifikatsname unter Einstellungen/SSL-Einstellungen (/admin_settings.php?page=overview&part=ssl) definieren. Bei „Pfad zum SSL-Zertifikat“ vorgenannte fullchain.pem und „Pfad zum SSL Private-Key“ privkey.pem (beide mit vollem Pfadnamen).
Noch ein Tip: Wenn Apache die apache.pem und key.pem nicht findet, kannst Du jederzeit auch einen Softlink setzen:
ln -s /etc/letsencrypt/live/domai.name/fullchain.pem /etc/apache2/ssl/apache2.pem
(oder so ähnlich). Dann startet auch der Vhost wieder.
Der Fehlercode SSL_ERROR_RX_RECORD_TOO_LONG bedeutet mit Sicherheit, dass Dir beim Zertifikaterstellen etwas danebengegangen ist. Wahrscheinlich passen CA und Zertifikat nicht zusammen. Apache überträgt http über den https-Port.
Habe einmal versucht das umzusetzen. Jetzt habe ich Letencrypt dazu bekommen, 3 Dateien zu erzeugen:
Quote/etc/ssl/froxlor-custom/<meine domain>.de_chain.pem
/etc/ssl/froxlor-custom/<meine domain>_fullchain.pem
/etc/ssl/froxlor-custom/<meine domain>_CA.pem
Eine privkey Datei habe ich nicht.
Dann habe ich zumindestens einen symbolischen Link eingefügt, der auf die Datei /etc/ssl/froxlor-custom/<meine domain>_fullchain.pem zeigt und eben den Eintrag im Froxlor befriedigt, also /etc/ssl/private/apache2.pem heißt.
Im System-Log unter Froxlor finde ich beim Ausführen des cronjobs, dann aber:
Quote
certificate file "/etc/ssl/private/apache2.pem" does not exist! Cannot create ssl-directivesHabe auch einmal versucht den Pfad in Froxlor direkt auf die fullchain.pem zu setzen, aber dann ändert sich eben auch nur der Pfad in der System-Log, an dem das System das certificate file nicht finden kann.
Was genau muss ich in die beiden Pfad Angaben schreiben?
Diese beiden Einträge scheinen nicht zu stimmen:
Pfad zum SSL-Zertifikat: /etc/ssl/private/apache2.pem
Pfad zum SSL Private-Key: /etc/ssl/private/apache2.key
-
Danke für die Rückmeldungen. Ich möchte es schon ohne weitere Tools hinbekommen und verstehen, was ich dort mache.
Konkret habe ich ein paar Fragen zur Anleitung oben:
Quote
Pfad zum SSL-Zertifikat: /etc/ssl/private/apache2.pemPfad zum SSL Private-Key: /etc/ssl/private/apache2.key
Wo kommen diese beiden Dateien her?
Quoteopenssl genrsa -out /etc/ssl/private/apache.key 2048
openssl req -new -x509 -key /etc/ssl/private/apache.key -days 365 -sha256 -out /etc/ssl/certs/apache.crt
Welche Schlüssel werden hier erstellt und zu welchem Zweck? Hängen sie irgendwie mit den apache2.xxx Dateien zusammen, deren Pfad bei Froxlor eingetragen wird?