# Eine Domain des Lieferanten selbst

> Wie der Portalbereich eines Pro-Lieferanten unter portal.theircompany.com bereitgestellt wird. Die Fallback-Quelle und die Produktions-All-Route sind aktiviert.

Bei Pro kann ein Lieferant seine eigene Portal-Adresse in **Einstellungen → Branding**, z. B. `portal.theircompany.com` oder `order.theircompany.com`, festlegen. Der Lieferant wird anhand dieser Host-Adresse erkannt. Eine Person sieht immer nur ein Portal, zu dem sie gehört. Mitarbeiter melden sich auf derselben Adresse an und öffnen den Arbeitsbereich dort. Das Abmelden kehrt zur Anmeldeseite dieser Adresse zurück. Käufer öffnen weiterhin den Handelsservice.

Verwenden Sie `portal.` oder `order.` anstelle des reinen Domänennamens. Der reine Domänennamen ist der Ort, an dem die E-Mail des Lieferanten festgelegt wird, und ein CNAME dort kämpft gegen diese E-Mail-Records. Die App lehnt einen reinen Namen wie `theircompany.com` ab.

`theirname.tradecatalog.app` und `tradecatalog.app/p/theirname` funktionieren weiterhin. E-Mails werden immer noch von `orders@tradecatalog.app` gesendet. Seiten auf der Adresse des Lieferanten senden `X-Robots-Tag: noindex`. `/mcp`, `/oauth` und `/api/v1` bleiben auf `tradecatalog.app`.

## Verbinden Sie Ihre Adresse

Öffnen Sie **Einstellungen → Branding → Ihre Portal-Adresse** auf Pro.

1. Wählen Sie **Ihr Branding verwenden**, um Ihren Namen, Ihr Logo und Ihre Farben auf der Anmeldung, dem Portal, E-Mails und Bestellunterlagen anzuzeigen. Die Serviceinformationen bleiben auf der Anmeldeseite.
2. Geben Sie eine Adresse wie `portal.theircompany.com` ein und wählen Sie **Adresse und Branding speichern**. Dies speichert die Adresse und das Branding zusammen und startet die Prüfung.
3. Fügen Sie den CNAME ein, der bei Ihrem DNS-Anbieter angezeigt wird. Kopiertasten kopieren den exakten Namen und Zielort. Wenn Ihr Anbieter Ihre Domain automatisch hinzufügt, geben Sie nur den Teil vor Ihrer Domain in **Name** ein.
4. Folgen Sie **Adresse gespeichert**, **Domain verifiziert** und **Sichere Verbindung**. Die Aktivierung des Hostnamens und die Ausstellung des Zertifikats sind separate Prüfungen. Eine verifizierte Domain bedeutet nicht automatisch, dass HTTPS bereit ist.
5. Die Prüfungen aktualisieren sich alle 30 Sekunden für bis zu zehn Minuten, während diese Seite sichtbar ist. Wählen Sie **Verbindung erneut prüfen**, um nach Änderungen an DNS oder wenn automatische Prüfungen angehalten wurden, erneut zu versuchen.
6. Sobald **Ihr Zertifikat ist bereit** erscheint, prüfen Sie, ob Ihr CNAME auf den angezeigten Zielort verweist, und verwenden Sie **Ihre Anmeldeseite öffnen**, um sicherzustellen, dass Ihr eigenes Portal sicher geöffnet wird, bevor Sie es teilen. Die Bereitschaft des Anbieters verifiziert nicht unabhängig, wohin Ihr Registrar den Verkehr sendet. Ihr bestehender Portal-Link ist während der Einrichtung weiterhin verfügbar.

Neue Adressen verwenden die automatische HTTP-Zertifikatprüfung. Eine Verbindungsprüfung kann einen ausstehenden Zertifikat sicher erneut prüfen, ohne es zu löschen. Ältere TXT-Einrichtungen können auf HTTP-Prüfung wechseln, wenn sie berechtigt sind. Delegierte und Wildcard-DNS-Prüfungen behalten ihre vorhandene Methode.

Wenn DNS-Prüfung erforderlich ist, werden alle erforderlichen TXT-Werte angezeigt, einschließlich beider Werte, wenn zwei Datensätze denselben Namen teilen. Delegations-CNAME-Datensätze sind eine Alternative, wenn sie angeboten werden. Halten Sie Delegations-Datensätze für Neuanmeldungen; ein CNAME- und ein TXT-Datensatz können nicht denselben Namen teilen. Für die automatische HTTP-Prüfung sind zusätzliche DNS-Verifizierungsdatensätze unter **Zusätzliche Zertifikatsverifizierungsdatensätze** verfügbar, anstatt als erforderlicher zusätzlicher Schritt präsentiert zu werden.

Die Seite zeigt die letzte Überprüfungszeit und alle Probleme an, die vom Zertifikatsdienst gemeldet wurden. Ein fehlgeschlagener Versuch behält Ihre aktuelle Adresse und Verifizierungsdaten bei. Wenn Sie Hilfe benötigen, verwenden Sie **Hilfe bei der Verbindung Ihrer Adresse anfordern**. Sie müssen keine API-Anmeldeinformationen von TradeCatalog verwalten oder nach einem versteckten Plattform-Button suchen.

Wenn Sie die gespeicherte Adresse leer lassen und **Adresse entfernen und Branding speichern** auswählen, wird sie entfernt. Wenn die Plattform mit Cloudflare verbunden ist, wird dort auch der alte benutzerdefinierte Hostname entfernt. Es ändert nicht Ihre DNS-Einträge beim Registrar.

## Für Plattformbetreiber

Die Abschnitte unten beschreiben die Infrastruktur von TradeCatalog, nicht die Schritte, die Lieferanten abschließen müssen. Der Fallback-Origin und der Produktions-Catch-All-Route sind separat konfiguriert. Ändern Sie nicht die Anmeldeinformationen des Anbieters oder die Zonentracks, während Sie die Lieferanteneinrichtung oben befolgen.

## Cloudflare für SaaS

Machen Sie dies in der `tradecatalog.app`-Zone manuell, wenn Sie bereit sind, benutzerdefinierte Domains zu aktivieren. Aktivieren Sie zuerst [Cloudflare für SaaS](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/start/enable/) für diese Zone.

### 1. Fallback-Origin

Benutzerdefinierte Hostname-Verkehr wird an einen Fallback-Origin in Ihrer Zone gesendet. Für einen Worker ist dieser Eintrag ohne Ursprung:

| Typ  | Name       | Inhalt  | Proxy   |
| ---- | ---------- | ------- | ------- |
| AAAA | `fallback` | `100::` | Proxied |

Legen Sie dann den Fallback-Origin auf `fallback.tradecatalog.app` fest. In der Dashboard-Übersicht ist dies **SSL/TLS → Custom Hostnames → Fallback origin**. Mit der API:

```
PUT /zones/{zone_id}/custom_hostnames/fallback_origin
{ "origin": "fallback.tradecatalog.app" }
```

Warten Sie, bis dieser Fallback-Origin **Aktiv** ist. Siehe [Workers als Fallback-Origin](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/start/advanced-settings/worker-as-origin/).

### 2. Worker-Route

Diese Route ist bereits in den **Produktions**-Routen in `wrangler.jsonc` vorhanden. Wrangler ersetzt Routen bei der Bereitstellung, daher würde das Entfernen dieser Route den Zugriff auf den Worker für den eigenen Domain des Lieferanten unterbrechen. Fügen Sie sie nicht in der Staging-Umgebung hinzu.

```json
{ "pattern": "*/*", "zone_name": "tradecatalog.app" }
```

Diese Route sendet jeden Host, der die Zone betritt, an diesen Worker, einschließlich der eigenen Domain eines Kunden. Spezifischere Routen gewinnen, daher lassen Sie die vorhandenen Routen unverändert:

```json
{ "pattern": "tradecatalog.app", "custom_domain": true }
```

```json
{ "pattern": "*.tradecatalog.app/*", "zone_name": "tradecatalog.app" }
```

Lassen Sie die Worker-Route in der Staging-Umgebung unverändert:

```json
{ "pattern": "staging.tradecatalog.app", "custom_domain": true }
```

Legen Sie nicht `*/*` in der Staging-Umgebung fest. Erstellen Sie keinen benutzerdefinierten Hostnamen, der gleich `tradecatalog.app`, `www.tradecatalog.app` oder `fallback.tradecatalog.app` ist.

### 3. Custom Hostnames API

Die App ruft die [Custom Hostnames API](https://developers.cloudflare.com/api/resources/custom_hostnames/methods/create/) auf, wenn ein Lieferant eine Adresse überprüft, und nur nachdem diese auf dem Produktions-Worker festgelegt wurden:

- `CLOUDFLARE_API_TOKEN` als Geheimnis mit Berechtigung, benutzerdefinierte Hostnames und deren Zertifikate zu bearbeiten
- `CLOUDFLARE_ZONE_ID` als `tradecatalog.app`-Zone-ID

```
POST /zones/{zone_id}/custom_hostnames
{
  "hostname": "portal.theircompany.com",
  "ssl": { "method": "http", "type": "dv", "settings": { "min_tls_version": "1.2" } }
}
```

Die Statusabfrage verwendet `GET /zones/{zone_id}/custom_hostnames/{id}`. Ein Lieferant kann ein ausstehendes, von dem Anbieter verwaltetes DV-Zertifikat sicher `PATCH` und dann seinen Status erneut abfragen, wobei die SSL-Einstellungen erhalten bleiben. Es löscht niemals oder erstellt neu einen Hostnamen. Aktive und hochgeladene benutzerdefinierte Zertifikate werden nicht neu gestartet, und delegierte oder Wildcard-Validierung bleibt als TXT. Das Löschen oder Ersetzen einer Adresse sendet `DELETE` für die vorherige ID.

Neue Adressen verwenden HTTP-Zertifikat-Validierung: Sobald der CNAME auf den Fallback-Origin verweist, kann Cloudflare automatisch validieren. Bestehende Adressen behalten ihre ursprüngliche Validierungsmethode, bis diese geändert wird.

Plattformmitarbeiter können **Adresse überprüfen** für jedes Unternehmen aus dem Kundenkonto des Unternehmens ausführen und über das Öffnen des Workspaces und die Verwendung von Einstellungen → Branding. **Zertifikat-Validierung zurücksetzen** ist nur für Plattformmitarbeiter. Es bittet Cloudflare, die Zertifikatmethode auf HTTP zu setzen. Wenn Cloudflare die Methode auf dem vorhandenen Hostnamen nicht ändern kann, wird der Hostname gelöscht und erneut erstellt mit der gleichen Adresse und Zertifikateinstellungen, und die neue ID wird gespeichert. Die Bestätigung sagt, dass dies den live Cloudflare benutzerdefinierten Hostnamen ändert. Während das Zurücksetzen läuft, zeigt der Bestätigungsbutton „Zurücksetzen…“ an, zeigt einen Spinner an und kann nicht erneut gedrückt werden. Danach zeigt die Seite den Status und alle DNS-Einträge an, die an den Lieferanten gesendet werden sollen. Die Überprüfung der Adresse im Kundenkonto führt dasselbe aus, während die Überprüfung läuft. Ein Lieferanteneigentümer kann das Zurücksetzen nicht ausführen.

Für eine Adresse, die nach einem sicheren Retry immer noch TXT oder Delegation verwendet, wählt der Lieferant **Verbindung erneut überprüfen**, fügt jeden Zertifikateintrag hinzu, der unter **Diese Einträge hinzufügen** angezeigt wird, und überprüft erneut. DNS kann verbunden werden, während das Zertifikat diese Einträge noch benötigt. Ersetzen Sie nicht einen TXT-Token durch den anderen, wenn zwei angezeigt werden. Wenn Delegation angeboten wird, verwenden Sie deren CNAME-Einträge anstelle konfliktierender TXT-Einträge. Die App leitet `/.well-known/acme-challenge/` oder `/.well-known/pki-validation/` auf diesem Host nicht um. Lassen Sie diese Pfade in jeder Umleitungsregel unverändert, damit eine Zertifikatüberprüfung nicht umgeschrieben wird.

### Was der Kunde hinzufügt

Ein CNAME für `portal.theircompany.com` (oder `order.`) mit Verweis auf `fallback.tradecatalog.app`.

Empfehlen Sie diesen Namen. Ein einfacher Domainname wie `theircompany.com` kann ohne Verschiebung der E-Mails kein normaler CNAME sein, und die Apex-Proxy-Setup von Cloudflare ist eine separate Einrichtung. Verwenden Sie es nicht.
