<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Sie können das Portal für die Verwendung von TLS konfigurieren. Die TLS-Konfiguration für das Portal hängt davon ab, wie Sie das Portal bereitgestellt haben:
- Cloud: Konfigurieren Sie TLS über Pantheon oder Acquia, die cloudbasierten Hostingdienste für das Portal.
- Apigee Edge for Private Cloud: Konfigurieren Sie TLS lokal auf dem Server, auf dem das Portal gehostet wird.
TLS und das Portal
In der folgenden Abbildung sehen Sie, wo das Portal TLS verwendet:
- Für die Kommunikation zwischen dem Portal und der Edge Management API.
Das Portal funktioniert nicht als eigenständiges System. Stattdessen werden viele der vom Portal verwendeten Informationen tatsächlich in Edge gespeichert, wo Edge entweder in der Cloud oder lokal als Private Cloud-Installation bereitgestellt werden kann. Bei Bedarf sendet das Portal eine HTTP- oder HTTPS-Anfrage an die Edge Management API, um Informationen abzurufen oder zu senden.
Wenn Sie Ihr Portal erstellen, müssen Sie als Erstes die URL der Edge Management API angeben. Je nachdem, wie die Edge-Verwaltungs-API konfiguriert ist, kann diese URL TLS verwenden. Weitere Informationen finden Sie unter Erste Schritte mit der Erstellung Ihres Entwicklerportals. - Für die Kommunikation zwischen Entwicklern und dem Portal.
Wenn Sie das Developer Services-Portal zum Bereitstellen Ihrer APIs verwenden, melden sich Ihre Entwickler dort an, um Anwendungen zu registrieren und API-Schlüssel zu erhalten. Die Anmeldedaten und der API-Schlüssel sind proprietäre Informationen, die Sie über HTTPS senden möchten, um ihre Sicherheit zu gewährleisten. Solche proprietären Informationen sollten über HTTPS gesendet werden.
Wie Sie TLS für dieses Szenario konfigurieren, hängt davon ab, wie Sie das Portal bereitgestellt haben: Cloud oder Apigee Edge for Private Cloud. In den folgenden Abschnitten werden beide Szenarien beschrieben.
Konfigurieren von TLS zwischen dem Portal und der Edge Management API
Die Konfiguration der Edge Management API bestimmt, ob die Kommunikation TLS verwenden kann oder nicht. Wenn die Edge-Verwaltungs-API für die Verwendung von TLS konfiguriert ist, kann das Portal HTTPS verwenden. Andernfalls kommuniziert das Portal über HTTP mit Edge. Daher müssen Sie als Portalentwickler nur wissen, wie Edge konfiguriert ist, um die Verbindung zwischen dem Portal und Edge einzurichten.
Das Verfahren, mit dem Sie die Verbindung zur Edge-Verwaltungs-API konfigurieren, finden Sie unter Erste Schritte mit dem Erstellen Ihres Entwicklerportals.
Cloudbasierte Version von Edge
Wenn Ihr Portal eine Verbindung zur cloudbasierten Version von Edge herstellt, wird die URL für die Edge-Verwaltungs-API von Apigee für die Verwendung von TLS vorkonfiguriert. Beim Konfigurieren des Portals greifen Sie über die URL https://api.enterprise.apigee.com/v1 auf die Edge-Verwaltungs-API zu.
Private Cloud-Installation von Edge
Für eine Private Cloud-Installation von Edge hat die URL der Edge Management API das folgende Format:
http://EdgePrivateCloudIp:8080/v1?
oder:
https://EdgePrivateCloudIp:TLSport/v1
Dabei ist EdgePrivateCloudIp die IP-Adresse des Edge Management Server-Servers und TLSport der TLS-Port für die Edge Management API. Je nach Edge-Konfiguration könnte die Portnummer beispielsweise 8443 oder sogar 8080 sein.
TLS zwischen Entwicklern und dem Portal konfigurieren
Wie Sie TLS zwischen Entwicklern und dem Portal konfigurieren, hängt davon ab, wie Sie das Portal bereitgestellt haben: Cloud oder Apigee Edge für Private Cloud.
Cloudbasierte Portale
Pantheon
Pantheon bietet kostenloses automatisiertes HTTPS für alle Websites auf seiner Plattform über das Pantheon Global CDN und Let's Encrypt. Siehe auch HTTPS im globalen CDN von Pantheon
Acquia
Informationen zum Aktivieren von TLS/SSL mit Acquia finden Sie unter SSL aktivieren.Edge für Private Cloud-Portale
Für alle von Apigee empfohlenen Private Cloud-Installationen des Portals muss sich das Portal hinter einem Load-Balancer befinden, wie unten gezeigt:
Bei lokalen Installationen haben Sie daher zwei Möglichkeiten, TLS zu konfigurieren:
- TLS auf dem Load-Balancer konfigurieren: Konfigurieren Sie TLS auf dem Load-Balancer selbst und nicht auf dem Portal. Das Verfahren, mit dem Sie TLS konfigurieren, hängt daher vom Load-Balancer ab. Weitere Informationen finden Sie in der Dokumentation zu Ihrem Load-Balancer.
- TLS auf dem Portal selbst konfigurieren: Bei Bedarf können Sie TLS auf dem Webserver konfigurieren, auf dem das Portal gehostet wird. Standardmäßig installiert Apigee den Apache-Webserver. Informationen zum Konfigurieren von TLS für Apache finden Sie unter HTTP Secure (HTTPS) aktivieren
Sie müssen ein eigenes TLS-Zertifikat erwerben, bevor Sie das Portal in einer Produktionsumgebung bereitstellen können.
Zusätzliche TLS-Einstellungen konfigurieren
Sie können die Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) bearbeiten, um die TLS-Konfiguration für das Portal zu ändern.
Fügen Sie beim Bearbeiten der Datei Instanzen der Funktion ini_set() hinzu, um eine Eigenschaft festzulegen. Weitere Informationen zu dieser Funktion finden Sie unter ini_set.
Sie können die folgenden Attribute in der Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) festlegen:
- cookie_httponly: (empfohlen) Gibt an, dass das Cookie nur über das HTTP-Protokoll zugänglich ist. Legen Sie diese Eigenschaft als
fest:
ini_set('session.cookie_httponly', true); - session.cookie_secure (optional): Gibt an, dass Cookies nur über sichere Verbindungen gesendet werden können. Das bedeutet jedoch, dass alle Inhalte über HTTPS bereitgestellt werden müssen. Wenn diese Einstellung aktiviert ist, funktioniert die Website nicht über HTTP. Legen Sie diese Eigenschaft fest als:
ini_set('session.cookie_secure', true); - gc_maslifetime und cookie_lifetime (optional): gc_lifeteime gibt die Anzahl der Sekunden an, nach denen Daten potenziell bereinigt werden können, und cookie_lifetime die Lebensdauer des Cookies in Sekunden. Legen Sie diese Eigenschaften fest als:
ini_set('session.gc_maxlifetime', 3600);
ini_set('session.cookie_lifetime', 3600);
Weitere Informationen zum Einrichten von TLS zwischen dem Entwicklerportal und Clients finden Sie auf der Pantheon-Dokumentwebsite unter SSL für sichere HTTPS-Kommunikation aktivieren.
TLS mit Load-Balancern konfigurieren
Für eine bessere Leistung werden Load-Balancer manchmal so konfiguriert, dass sie die TLS-Beendigung durchführen. Mit TLS-Beendigung entschlüsseln Load-Balancer Nachrichten, die über https:// gesendet wurden, und leiten sie über http:// an Back-End-Server weiter. Dadurch müssen Back-End-Server die https://-Nachrichten nicht selbst entschlüsseln.
Wenn Load-Balancer unverschlüsselte HTTP-Nachrichten an Server im selben Rechenzentrum weiterleiten, stellt dies kein Sicherheitsproblem dar. Wenn Load-Balancer jedoch Nachrichten über http:// an Server außerhalb des Rechenzentrums weiterleiten, z. B. an Ihr Apigee-Entwicklerportal, sind die Nachrichten unverschlüsselt, wodurch eine Sicherheitslücke entsteht.
Wenn sich Ihr Entwicklerportal hinter Load-Balancern mit TLS-Beendigung befindet und der gesamte Traffic über https:// bereitgestellt werden soll, dürfen die Seiten der Website nur https://-Links enthalten. Außerdem müssen Sie den folgenden Code in die Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) einfügen. Da das Lastenausgleichsmodul den Inhalt der HTML-Seiten nicht automatisch transformiert, sorgt der Code dafür, dass alle an den Client übergebenen Links mit https:// beginnen.
Wenn Sie TLS mit Load-Balancern konfigurieren möchten, fügen Sie der Datei sites/default/settings.local.php (Cloud) bzw. sites/default/settings.php (Private Cloud) die folgenden Zeilen hinzu:
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; // Set HTTPS URL of portal $base_url = 'https://developers.myCo.com'; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_ FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_ FORWARDED_PROTO']) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { header('HTTP/1.0 301 Moved Permanently'); // You could optionally substitute a canonical server name for $_SERVER['HTTP_HOST'] here. header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; } }
Weitere Informationen finden Sie unter:
- Load-Balancer oder Reverse-Proxy verwenden
- Unterstützung von X-Forwarded-*-HTTP-Headern im alternativen Format
- Drupal hinter einem SSL-Offloading-Reverse-Proxy – Ist diese Konfiguration korrekt?
Portal-Traffic zu HTTPS weiterleiten
Sie können den gesamten Portaltraffic zu HTTPS weiterleiten, indem Sie Ihre Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) aktualisieren. Welche Aktualisierungen erforderlich sind, hängt davon ab, ob die Weiterleitung zu HTTPS mit demselben oder mehreren Hostnamen erfolgen.
Weiterleitung zu HTTPS auf demselben Hostnamen
Fügen Sie den folgenden Code in Ihre Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) ein, um den gesamten Portal-Traffic an HTTPS auf demselben Hostnamen weiterzuleiten (z. B. *.devportal.apigee.io).
In diesem Szenario schlägt die Anfrage fehl, wenn ein Entwickler Ihr Portal unter live-example.devportal.apigee.io besucht, aber auf ein Zertifikat zugreifen muss, das für devportal.example.com hochgeladen wurde.
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { header('HTTP/1.0 301 Moved Permanently'); header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; } }
Weiterleitung zu HTTPS auf mehreren Hostnamen
Fügen Sie den folgenden Code in die Datei sites/default/settings.local.php (Cloud) oder sites/default/settings.php (Private Cloud) ein, um den gesamten Portaltraffic zu HTTPS auf mehreren Hostnamen weiterzuleiten.
// Only check for SSL if we are not using PHP from the command line. if (PHP_SAPI != 'cli') { // Assume we can't detect SSL unless proven otherwise. $can_detect_ssl = FALSE; // Assume we are not forcing a redirect until proven otherwise. $force_redirect = FALSE; if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) { $can_detect_ssl = TRUE; } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') { $_SERVER['HTTPS'] = 'on'; } if ($can_detect_ssl && $_SERVER['HTTPS'] != 'on') { // We will force a redirect because HTTPS is required. $force_redirect = TRUE; } // This works on Pantheon only; the constant is undefined elsewhere. switch (PANTHEON_ENVIRONMENT) { case 'dev': $canonical_hostname = 'dev.devportal.example.com'; break; case 'test': $canonical_hostname = 'test.devportal.example.com'; break; case 'live': $canonical_hostname = 'devportal.example.com'; break; default: $canonical_hostname = strtolower($_SERVER['HTTP_HOST']); break; } if ($canonical_hostname != strtolower($_SERVER['HTTP_HOST'])) { // We will force a redirect because hostname is not canonical. $force_redirect = TRUE; } if ($force_redirect) { header('HTTP/1.0 301 Moved Permanently'); header('Location: https://' . $canonical_hostname . $_SERVER['REQUEST_URI']); exit; } }