Eigene Domain mit CNAME

Last change on 2025-03-17 • Created on 2025-03-17 • ID: ST-F555E

Aktuell ist es nicht möglich, einem Bucket einen eigenen Domainnamen zuzuweisen. Wenn Sie für Ihren Bucket dennoch eine eigene Domain verwenden möchten, können Sie manuell eine Weiterleitung einrichten.

In diesem How-To wird erklärt, wie man einen CNAME-Record einrichtet. Da ein CNAME-Record aktuell nur funktioniert, wenn der Host-Header auf die Bucket-URL gesetzt ist, wird zusätzlich erklärt, wie Sie den Host-Header über die folgenden zwei Beispiel-Methoden anpassen können:

  • Über Cloudflare mit einem Enterprise Plan
  • Durch einen kurzen Code-Snippet am Anfang eines Python-Skripts, das Ihre Domain verwendet

Voraussetzungen:

  • Eine eigene Domain
  • Einen Bucket mit öffentlichen Daten

Am Ende dieses How-Tos sollten alle Anfragen an Ihre Domain direkt an den Bucket weitergeleitet werden.


  1. DNS-Eintrag erstellen

    Erstellen Sie einen neuen CNAME-Record. Die Domain muss auf den Hostnamen des Buckets zeigen.

    TYPE Name Value
    CNAME example.com <bucket_name>.<region>.your-objectstorage.com

    Beachten Sie, dass es mehrere Stunden dauern kann, bis die Änderung vollständig übernommen wurde.


  1. Verbindung prüfen

    Mit nslookup können Sie prüfen, ob die Änderung bereits übernommen wurde.

    nslookup example.com

    Sobald die Domain umgeleitet wird, können Sie mit curl prüfen, ob Sie über Ihre Domain auf die Dateien in Ihrem Bucket zugreifen können. Beachten Sie, dass der Host-Header in der Anfrage auf die Domain des Buckets gesetzt sein muss. Zum Prüfen der Weiterleitung, können Sie den Host-Header in der curl-Anfrage festlegen. Wenn Ihre Domain kein SSL-Zertifikat besitzt, geben Sie zusätzlich --insecure an.

    curl -H "Host: <bucket_name>.<region>.your-objectstorage.com" --insecure https://example.com/test.txt

  1. Host-Header über Provider überschreiben

    Manche Provider bieten die Möglichkeit, den Host-Header für eingehende Anfragen zu überschreiben.

    Cloudflare bietet das zum Beispiel für Kunden mit einem Enterprise Plan an:

    • Wählen Sie Ihre Domain aus

    • Navigieren Sie über die linke Menüleiste zu "Regeln" » "Übersicht"

    • Wählen Sie + Regel erstellen » Origin Rule aus

    • Bestimmen Sie, für welche eingehenden Anforderungen die Regel gelten soll

      Feld Operator Wert
      Hostname gleich example.com
    • Wählen Sie bei Hostheader die Option Umschreiben in... und geben Sie die Bucket-URL an

      cloudflare cname header de


  1. Host-Header im Skript überschreiben

    Wenn Sie den Host-Header über Ihren Provider nicht setzen können und Sie die Domain in einem Skript verwenden, können Sie den Header alternativ am Anfang des Skripts festlegen. Hier ein Beispiel für Python:

    import urllib.request, ssl
    
    def fetch(url):
        req = urllib.request.Request(url, headers={
            "Host": "<bucket_name>.<region>.your-objectstorage.com"
        } if "example.com" in url else {})
    
        # Wenn Ihre Domain kein SSL-Zertifikat besitzt, nutzen Sie stattdessen die folgende Zeile.
        #return urllib.request.urlopen(req, context=ssl._create_unverified_context()).read().decode()
        return urllib.request.urlopen(req).read().decode()
    
    print(fetch("https://example.com/test.txt"))

Wenn Sie nun auf Ihre Domain zugreifen, sollte die Verbindung auf den Bucket weitergeleitet werden.