{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import field, checkbox, alert, pill %} {% block page_title %}Webserver und TLS{% endblock %} {% block page_sub %} {{ config.domain or 'ohne Domain' }} · {% if config.https_enabled %}HTTPS aktiv{% else %}nur HTTP{% endif %} {% endblock %} {% block content %} {% if license_hint %}{{ alert(license_hint, 'warning') }}{% endif %} {% if not sysops_available %} {{ alert('Systemhelfer nicht verfuegbar -- die Konfiguration kann hier erzeugt und angesehen, aber nicht angewandt werden.', 'info') }} {% endif %} {{ alert('Die Site-Datei wird bei jeder Uebernahme vollstaendig neu geschrieben. Alles, was ein Administrator sonst per Hand hineinschreiben wuerde, ist hier Einstellung. Der Vorgaenger schrieb die Datei nur, wenn sie noch nicht existierte -- ein einmal falscher Pfad blieb dadurch ueber Jahre bestehen und lieferte alle statischen Dateien als 404.', 'info', 'Warum die Datei immer neu geschrieben wird') }}
{{ icon('server', size=17) }} Einstellungen
{{ field('web_domain', 'Domain', value=config.domain, placeholder='tesm.firma.de', disabled=bool(license_hint), hint_text='Leer = Zugriff ueber IP-Adresse.') }} {{ field('web_acme_email', 'E-Mail fuer Let\'s Encrypt', value=acme_email, type='email', disabled=bool(license_hint)) }} {{ field('web_cert_path', 'Zertifikat (Pfad)', value=config.cert_path, disabled=bool(license_hint), extra_class='field--full') }} {{ field('web_key_path', 'Privater Schluessel (Pfad)', value=config.key_path, disabled=bool(license_hint), extra_class='field--full') }} {{ field('web_acme_webroot', 'ACME-Webroot', value=config.acme_webroot, disabled=bool(license_hint), extra_class='field--full') }}
{{ checkbox('web_https_enabled', 'HTTPS auf Port 443 anbieten', checked=config.https_enabled, disabled=bool(license_hint)) }} {{ checkbox('web_redirect_http', 'HTTP (Port 80) auf HTTPS umleiten', checked=config.redirect_http, disabled=bool(license_hint), hint_text='Der ACME-Pfad bleibt dabei erreichbar -- sonst koennte Let\'s Encrypt nie erneuern.') }} {{ checkbox('web_hsts_enabled', 'HSTS-Header senden', checked=config.hsts_enabled, disabled=bool(license_hint), hint_text='Nur mit funktionierendem HTTPS aktivieren: Browser merken sich die Vorgabe und verweigern danach jeden HTTP-Zugriff.') }}
{{ icon('file-text', size=17) }} Erzeugte nginx-Konfiguration
Vorschau der Datei, die geschrieben wuerde
{{ icon('chevron-down', size=16) }}
{{ preview }}
{{ icon('shield', size=17) }} Zertifikat
{% if certificate.present %}vorhanden{% else %}nicht vorhanden{% endif %}
{% if certificate.present and not certificate.get('error') %}
Inhaber
{{ certificate.subject }}
Aussteller
{{ certificate.issuer }}
Gueltig bis
{{ certificate.not_valid_after | dt }}
Seriennummer
{{ certificate.serial }}
{% elif certificate.get('error') %} {{ alert('Zertifikat nicht lesbar: ' ~ certificate.error, 'danger') }} {% else %}

Fordern Sie ein Zertifikat per Let's Encrypt an oder hinterlegen Sie eigene Pfade.

{% endif %} {% if current_user.has('settings_web.execute') %}
{% if not certbot_available %}

certbot ist auf diesem Host nicht installiert.

{% elif not config.domain %}

Fuer Let's Encrypt wird oben eine Domain gebraucht, die oeffentlich auf diesen Host zeigt.

{% endif %}

Kein oeffentlicher Name? Dann ein eigenes Zertifikat erzeugen. Browser zeigen dafuer eine Warnung, die Verbindung ist aber verschluesselt -- und das Sitzungscookie darf endlich Secure tragen.

{% if local_names %}

Wird ausgestellt auf: {{ (config.domain or local_names[0]) }} {% if local_names|length > 1 %} (zusaetzlich {{ local_names[1:] | join(', ') }}) {% endif %}

{% endif %}
{% endif %}
{% if current_user.has('settings_web.execute') %}
{{ icon('upload', size=17) }} Uebernehmen
Schreiben, nginx -t, dann neu laden
{% endif %}
{% endblock %}