Mastodon katzenjens' Technik-Blog: Webseitenaufruf per SSL direkt über IP-Adresse Mastodon

16.05.2026

Webseitenaufruf per SSL direkt über IP-Adresse

Ich gebe zu, es ist etwas Spezielles und wird selten benötigt. Aber es gibt tatsächlich Einsatzbereiche dafür. Einerseits für Maschinenkommunikation. Es wird kein DNS benötigt. Andererseits für Kommunikation ohne direkt sichtbare Herkunft. Domains lassen sich abschalten. IP-Adressen eher schlecht...

Bisher konnte man IP-basierte Zertifikate nur kostenpflichtig über kommerzielle Zertifizierungsstellen bekommen. Seit März 2026 geht es auch über LetsEncrypt. Allerdings konnte ich auf Anhieb nicht genau die Syntax finden. Selbst Gemini halluzinierte lieber und führte mich in die Irre. Also habe ich weitergesucht und bin im Blog von LetsEncrypt fündig geworden. Keine Ahnung, wieso die gängigen Suchmaschinen zwar pfundsweise die Einführung von IP-basierten Zertifikaten ankündigen, aber nirgendwo das HowTo erklärt wird.

Egal, hier ist der erlösende Link...
https://letsencrypt.org/2026/03/11/shorter-certs-certbot

Dort steht auch die Anleitung drin. Allerdings muss man aufpassen, wie man seinen Webserver konfiguriert hat. Gewöhnlicherweise lässt man ihn nicht wirklich bei IP-basierten Aufrufen ins /var/www/html tauchen. Stattdessen muss man im "Lumpensammler", also dem VHOST, welcher alle nicht durch (Sub) Domains abgedeckten Webseiten abfrühstückt, aktiv werden damit der Certbot auf die /.well-known/acme-challenge/ zugreifen kann. So zum Beispiel für Apache2. 


# 000-default.conf ================================================
# Port 80: HTTP (Nur für den Certbot & Umleitung)
# =================================================================
<VirtualHost *:80>
ServerName 203.0.113.0
DocumentRoot /var/www/html/direct
# Erlaube Let's Encrypt Zugriff auf die Challenge-Dateien
Alias /.well-known/acme-challenge/ /var/www/html/direct/.well-known/acme-challenge/
<Directory "/var/www/html/direct/.well-known/acme-challenge/">
Require all granted
</Directory>
# Leite ALLES andere strikt auf HTTPS um
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/ [NC]
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
# =================================================================
# Port 443: HTTPS (Der eigentlicher Dienst)
# =================================================================
<VirtualHost *:443>
ServerName 203.0.113.0
DocumentRoot /var/www/html/direct
# 1. SSL/TLS Konfiguration (Zertifikatspfad von Let's Encrypt)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/203.0.113.0/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/203.0.113.0/privkey.pem
# Härte die Protokolle: Nur TLS 1.2 und 1.3 erlauben
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on
# 2. Spezifische Sicherheits-Header
# Verhindert MIME-Type Sniffing
Header always set X-Content-Type-Options "nosniff"
# Schützt vor Clickjacking (niemand darf deine Seite in iframes laden)
Header always set X-Frame-Options "DENY"
# Veraltet, aber schadet nicht als Fallback für alte Browser
Header always set X-XSS-Protection "1; mode=block"
# Restriktive CSP (Content Security Policy)
# Erlaubt nur Ressourcen (Bilder, CSS) vom eigenen Server
Header always set Content-Security-Policy "default-src 'self';"
# 3. Der absolute OPSEC-Header: X-Robots-Tag
# Ersetzt die robots.txt und verbietet Suchmaschinen auf HTTP-Protokollebene
# das Indexieren, Cachen oder Snippet-Bilden deiner Dateien.
Header always set X-Robots-Tag "noindex, nofollow, noarchive, nosnippet"
# 4. Verzeichnis-Absicherung
<Directory /var/www/html/direct>
# Schaltet das Directory Listing (Index) rigoros ab
Options -Indexes +FollowSymLinks
# Verhindert, dass eine vergessene .htaccess diese Regeln überschreibt
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

Keine Kommentare:

Kommentar veröffentlichen