{% extends "base.html" %} {% set active_page = "settings_nginx" %} {% set can_edit = current_user.has_permission('settings_nginx.edit') %} {% block page_title %}NGINX{% endblock %} {% block page_sub %}
Reverse-Proxy: Domain, Ports, SSL/HSTS und Zertifikat
{% endblock %} {% block content %}

Reverse-Proxy

Domain (server_name), Ports und HTTPS/HSTS für den nginx-Reverse-Proxy vor der App.
{% if pending_nginx_token %}

Neue nginx-Konfiguration wurde angewendet. Wenn diese Seite gerade noch lädt, funktioniert die Verbindung — bitte bestätigen, bevor automatisch zurückgerollt wird (nach {{ nginx_revert_seconds }}s ohne Bestätigung).

{% elif can_edit %}
"_" ist nginx' Catch-all (Standard für interne Instanzen ohne eigene Domain) — für Let's Encrypt muss hier die tatsächliche, öffentlich auflösbare Domain stehen.
Let's Encrypt validiert IMMER über Port 80 (protokollbedingt, unabhängig vom hier eingestellten HTTP-Port) — weicht der HTTP-Port von 80 ab, wird dafür automatisch zusätzlich ein minimaler Port-80-Block mitgeschrieben.
{% if not cert_info %}
Erst nach Hochladen oder Anfordern eines Zertifikats verfügbar.
{% endif %}
Weist Browser an, diese Instanz künftig NUR noch über HTTPS aufzurufen — bleibt auch bei einem späteren Zurückschalten auf HTTP im Browser für 1 Jahr bestehen. Nur aktivieren, wenn das Zertifikat dauerhaft gepflegt wird.
{% else %}

Für Änderungen fehlt das Recht „NGINX ändern“.

{% endif %}

Zertifikat

Hochladen (PEM) oder automatisch per Let's Encrypt anfordern — mit automatischer Verlängerung über certbots eigenen Timer.
{% if cert_info %}
Quelle{{ "Let's Encrypt" if cert_info.source == "letsencrypt" else "Hochgeladen" }}
Subject{{ cert_info.subject }}
Aussteller{{ cert_info.issuer }}
Gültig bis {{ cert_info.not_after.strftime('%d.%m.%Y') }} {% if cert_info.days_left < 0 %} abgelaufen {% elif cert_info.days_left <= 30 %} noch {{ cert_info.days_left }} Tage {% else %} noch {{ cert_info.days_left }} Tage {% endif %}
{% else %}

Noch kein Zertifikat hinterlegt.

{% endif %} {% if can_edit %}
Setzt voraus, dass die Domain öffentlich auf diesen Host auflöst und Port 80 aus dem Internet erreichbar ist (HTTP-01-Validierung) — für rein interne Instanzen ohne öffentliche Domain nicht nutzbar, dann stattdessen hochladen.
Ein passwortgeschütztes Schlüssel wird abgelehnt — nginx könnte ihn beim Start ohnehin nicht ohne manuelle Passworteingabe laden.
{% if cert_info and not ssl_enabled %}
{% elif cert_info %}

SSL muss zuerst deaktiviert werden, bevor das Zertifikat entfernt werden kann.

{% endif %} {% else %}

Für Anfordern/Upload/Entfernen fehlt das Recht „NGINX ändern“.

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}