http > https Dienste: Nginx

Started by pumuckl, November 17, 2019, 06:00:23 PM

Previous topic - Next topic
Hallo,

Ich möchte 2-3 http Dienste die über das Web erreichbar sind von http zu https umleiten.

zum beispiel Motioneye, Anleitungen wie man es am Client mit macht hab ich schon gesehen.

ich möchte das aber gleich direkt an der opnsense machen.

Gibt es da Ausführliche Anleitungen?

also wie ich dern Reverse Proxy einrichte und Anleitungen für die opnsese Erweiterung Nginx generell

grüsse

Geht mit nginx sicher auch...
Ich würde für den Fall jedoch auf HAProxy setzen.

Gesendet von meinem LG-H815 mit Tapatalk


nehme ich auch

gib es ein beispiel oder howto für eine http >https Weiterleitung

Naja.. eigentlich nicht wirklich schwer...

Ein Frontend anlegen
mit Port 80


Eine Bedingung anlegen:
Wenn die Verbindung nicht verschlüsselt ist


Eine Regel anlegen:
Wenn Verbindung nicht verschlüsselt dann "http-request redirect" mit "scheme https code 301"


Dann die Regel dem Frontend hinzufügen und es sollte funktionieren

Im nginx plugin ist es einfach nur ne checkbox. Kann sein, dass das ne advanced Einstellung ist. Also einfach oben mal auf advanced umschalten.

November 17, 2019, 10:00:34 PM #5 Last Edit: November 17, 2019, 10:08:59 PM by pumuckl
ich hab mich mal daran gehalten:
https://forum.opnsense.org/index.php?topic=11995.0


Das ist mein Server hab ihn so angelegt wie er im LAN erreichbar ist:
motioneye   10.10.10.18   xxxx    motioneye
SSL und Überprüfen Sie das SSL-Zertifikat hab ich nicht angehakt weil die Seite http ist.


Dann hab ich ein Backend erstellt und meinen Server ausgewählt.

Frontend ist vermutlich der Öffentliche Dienst
Mir ist da nicht klar was ich als Hörende Adressen eintragen soll

intern: 10:10:10:18:80 ?
extern www.xxxxxxserver.duckdns.org:80 ?  (wenn ich diese Adresse eingebe hängt der Haproxy,hab entfernt)

ab hier möchte ich verschlüsseln, hab mal alles Standard gelassen und 100 Verbindungen erlaubt

hab eine Bedingung erstellt:

   Datenverkehr ist http

Regel erstellt:

Bedingungen Auswählen: Datenverkehr ist http 
Funktion ausführen http-request redirect 
HTTP-Umleitung scheme https code 301


habe diese Einstellungen angewendet

Wenn ich 10.10.10.18 aufrufe

Die Server-IP-Adresse von _ wurde nicht gefunden.

Der Proxy dürft arbeiten weil
10.10.10.18:8080 (geht ins lere) gibt folgende Ausgabe


10.10.10.18 hat die Verbindung abgelehnt.


Was fehlt noch?

_________________________
edit 1:
der HaProxy läuft nicht

Das Frontend bzw die listen Adressen sind Falsch

was muss ich da für Adressen eingeben?

HaProxy läuft jetzt
Konnte den Dienst nicht öffnen,  weil ich kein Zertifikat habe.

Habe dann diese Anleitung gefunden:

   https://www.google.com/amp/s/blog.bagro.se/lets-encrypt-with-haproxy-on-opnsense/amp/
 


Mein Problem:

Ich kann kein Zertifikat erstellen,  weil ich keinen Server laufen habe . Der mit lets encrypt angesprochenen wird.

Wie komme ich am besten zu einen brauchbaren Zertifikat.
Kann ich das Zertifikat für die opnsense Webseite gui verwenden?


Wenn Du HA Proxy als Reverse Proxy verwendest kannst Du doch auf der OPNSense Firewall das Letsencrypt Packet installieren und entsprechend einrichten. Mit dem Packet wird alles automatisch nach konfiguration für ein Zertifikat gemacht. Das Zertifikat landet dann in Deinem Zertifikatsordner.

System -> Trust -> Authories

November 20, 2019, 01:00:23 PM #8 Last Edit: November 20, 2019, 03:42:57 PM by pumuckl
ich schaffe es nicht ein Zertifikat zu erstellen, bzw das es ausgestellt ist.

Certificate Options
Aktiviert

Common Name                 xxxxxxserver.duckdns.org
Beschreibung                    zertifikat
Alternative Namen
et's Encrypt Settings
LE-Konto zert1
Überprüfungsmethode        zert1
Automatische Erneuerung     x

Erneuerungsintervall          60
Sicherheitseinstellungen
Key Length 4096

OCSP Must Staple

Erweiterte Einstellungen
Automations                        auto
Alles entfernen
DNS Alias Mode                   not usin



xxxxxxserver.duckdns.org geht auf die ip von meinen router
von da hab ich nur wenige ports auf die opnsense weitergeleitet.

port 80 ist nicht dabei


wenn ich das zertifikat erstellen will bekomme ich diese Fehler:

[Wed Nov 20 12:56:08 CET 2019] Please check log file for more details: /var/log/acme.sh.log
[Wed Nov 20 12:56:08 CET 2019] _on_issue_err
[Wed Nov 20 12:56:08 CET 2019] skip dns.
[Wed Nov 20 12:56:08 CET 2019] dns_entries
[Wed Nov 20 12:56:08 CET 2019] _clearupdns
[Wed Nov 20 12:56:08 CET 2019] No need to restore nginx, skip.
[Wed Nov 20 12:56:08 CET 2019] pid
[Wed Nov 20 12:56:08 CET 2019] Create domain key error.
[Wed Nov 20 12:56:08 CET 2019] Add '--force', and try again.
[Wed Nov 20 12:56:08 CET 2019] Domain key exists, do you want to overwrite the key?
[Wed Nov 20 12:56:08 CET 2019] ACME_DIRECTORY='https://acme-staging-v02.api.letsencrypt.org/directory'
[Wed Nov 20 12:56:08 CET 2019] Using config home:/var/etc/acme-client/home
[Wed Nov 20 12:56:08 CET 2019] Creating domain key
[Wed Nov 20 12:56:08 CET 2019] Read key length:
[Wed Nov 20 12:56:08 CET 2019] _saved_account_key_hash is not changed, skip register account.
[Wed Nov 20 12:56:08 CET 2019] d
[Wed Nov 20 12:56:08 CET 2019] _currentRoot='/var/etc/acme-client/challenges'
[Wed Nov 20 12:56:08 CET 2019] Check for domain='xxxxxxserver.duckdns.org'
[Wed Nov 20 12:56:08 CET 2019] d='xxxxxxserver.duckdns.org'
[Wed Nov 20 12:56:07 CET 2019] Le_LocalAddress
[Wed Nov 20 12:56:07 CET 2019] _chk_alt_domains
[Wed Nov 20 12:56:07 CET 2019] _chk_main_domain='xxxxxxserver.duckdns.org'
[Wed Nov 20 12:56:07 CET 2019] _on_before_issue
[Wed Nov 20 12:56:07 CET 2019] ACME_VERSION='2'
[Wed Nov 20 12:56:07 CET 2019] ACME_NEW_NONCE='https://acme-staging-v02.api.letsencrypt.org/acme/new-nonce'
[Wed Nov 20 12:56:07 CET 2019] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf'
[Wed Nov 20 12:56:07 CET 2019] ACME_REVOKE_CERT='https://acme-staging-v02.api.letsencrypt.org/acme/revoke-cert'
[Wed Nov 20 12:56:07 CET 2019] ACME_NEW_ACCOUNT='https://acme-staging-v02.api.letsencrypt.org/acme/new-acct'
[Wed Nov 20 12:56:07 CET 2019] ACME_NEW_ORDER='https://acme-staging-v02.api.letsencrypt.org/acme/new-order'
[Wed Nov 20 12:56:07 CET 2019] ACME_NEW_AUTHZ
[Wed Nov 20 12:56:07 CET 2019] ACME_KEY_CHANGE='https://acme-staging-v02.api.letsencrypt.org/acme/key-change'
[Wed Nov 20 12:56:07 CET 2019] ret='0'
[Wed Nov 20 12:56:07 CET 2019] _CURL='curl -L --silent --dump-header /var/etc/acme-client/home/http.header -g '
[Wed Nov 20 12:56:07 CET 2019] timeout=
[Wed Nov 20 12:56:07 CET 2019] url='https://acme-staging-v02.api.letsencrypt.org/directory'
[Wed Nov 20 12:56:07 CET 2019] GET
[Wed Nov 20 12:56:07 CET 2019] _init api for server: https://acme-staging-v02.api.letsencrypt.org/directory
[Wed Nov 20 12:56:07 CET 2019] Using ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
[Wed Nov 20 12:56:07 CET 2019] DOMAIN_PATH='/var/etc/acme-client/home/xxxxxxserver.duckdns.org'
[Wed Nov 20 12:56:07 CET 2019] ACME_DIRECTORY='https://acme-staging-v02.api.letsencrypt.org/directory'
[Wed Nov 20 12:56:07 CET 2019] Using stage ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory



Brauche ich eine Domain um ein Zertifikat zu bekommen?

______________________________________________________
Edit1:

vermutlich muss ich Port 80 und 443 vom Router zu Firewall weiter leiten.

bzw Opensense als DMZ im Router setzen

Damit die Let's Encryp Erweiterung einen Antwort bekommt.

Wie Du schon richtig erkannt hast musst Du Port 80 auf die Firewall weiterleiten lassen. Von da an gibt es dann in "wenn Du HA Proxy" in der Letsencrypt Konfig angegeben hast einen Eintrag in der HA Proxy Konfig damit Deine Domain gecheckt werden kann.

Irgendwie klappt das mit dem Zertifikat noch nicht.

Hab folgende Ports geöffnet und zur Opnsese weitergeleitet.

          IPv4 TCP * * Diese Firewall 42520 * * HTTP_HAproxy    
  IPv4 TCP * * Diese Firewall 80 (HTTP) * * HTTP_HAproxy


oder geht das so gar nicht?

Brauche ich eine registrierte Domain oder geht das auch mit dem dns dienst von duckdns?





Ich konnte mit dem Nginx Plugin nach dieser Anleitung:

https://docs.opnsense.org/manual/how-tos/nginx.html

es einrichten das wenn ich die IP der  Firewall auf port 8080 aufrufe ich zu meinen Server weitergeleitet werde.

Edit Location:
root / 0 1
HTTP Server:
127.0.0.1 1 8080 8443


Port 8443 ist aber nicht erreichbar

bzw wie richte ich ab hier den reverse proxy ein?



Hast du Zertifikat etc. auch konfiguriert? Ohne wird TLS nicht funktionieren.

Ansonsten ist der Port in der Firewall offen?

November 28, 2019, 08:41:47 PM #13 Last Edit: November 28, 2019, 08:48:10 PM by pumuckl
hab ein Selbst signiertes Zertifikat erstellt via trust und certificates

https://www.thomas-krenn.com/de/wiki/Selbstsignierte_SSL_Zertifkate_mit_OPNsense_erstellen

:'( Damit hab mich erfolgreich ausgesperrt

Wenn ich den Zugriff wieder hergestellt habe, wie erstelle ich am besten ein Zertifikat für meine opnsense und andere Dienste bzw reicht ein Zertifikat für den https proxy?

geht das  via trust und certificates über haut noch oder sollte ich das lets encrypt plugin nehmen. `

gibt es eine Anleitung für das  lets encrypt plugin?

grüsse und thx

Ja, geht noch über trust aber LE wäre besser. Für LE muss dein Server auf Port 80 hören oder du musst DNS konfigurieren.

Für LE gibt es eine Checkbox (könnte advanced sein) im Server um die Challenge umzuleiten (acme plugin).

Das kann bei richtiger Konfiguration zertifikate ausstellen und die können dann in den nginx eingespielt werden.