TLS im Portal verwenden

<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. TLS-Konfigurationsverfahren für das Portal hängt davon ab, wie Sie das Portal bereitgestellt haben:

  • Cloud: Konfigurieren Sie TLS in Pantheon oder Acquia, dem cloudbasierten Hosting. für das Portal zu nutzen.
  • Apigee Edge for Private Cloud: Konfigurieren Sie TLS lokal auf dem Server zum Hosten des Portals.

TLS und das Portal

In der folgenden Abbildung sehen Sie, wo das Portal TLS verwendet:

  1. Für die Kommunikation zwischen dem Portal und der Edge Management API.

    Das Portal funktioniert nicht als eigenständiges System. Stattdessen werden viele der von Das Portal wird tatsächlich in Edge gespeichert, wo Edge entweder in der Cloud oder in der lokal als Private Cloud-Installation. Bei Bedarf erstellt das Portal HTTP oder HTTPS -Anfrage an die Edge-Verwaltungs-API, um Informationen abzurufen oder Informationen zu senden.

    Wenn Sie Ihr Portal erstellen, müssen Sie als Erstes die URL der Edge-Verwaltungs-API. Je nachdem, wie die Edge-Verwaltungs-API konfiguriert ist, wird diese URL TLS verwenden können. Weitere Informationen finden Sie unter Erstellen ein Entwicklerportal.
  2. Für die Kommunikation zwischen Entwicklern und dem Portal.

    Wenn Sie das Portal für Entwicklerdienste zur Bereitstellung Ihrer APIs verwenden, melden sich Ihre Entwickler in der zum Registrieren von Anwendungen und Empfangen von API-Schlüsseln. Die Anmeldedaten und der API-Schlüssel sind proprietäre Informationen, die Sie über HTTPS senden möchten, um deren Sicherheit zu gewährleisten. Dieses Art von proprietären Informationen über HTTPS gesendet werden.

    Wie Sie TLS in diesem Szenario konfigurieren, hängt davon ab, wie Sie die Portal: Cloud oder Apigee Edge for Private Cloud. In den folgenden Abschnitten wird beschrieben, beiden Szenarien.

TLS zwischen dem Portal konfigurieren und die Edge-Verwaltungs-API

Die Konfiguration der Edge-Verwaltungs-API bestimmt, ob die Kommunikation die Verwendung von TLS. 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. Als Portalentwickler müssen nur wissen, wie Edge konfiguriert ist, um die Verbindung zwischen dem Portal und Edge

Das Verfahren, mit dem Sie die Verbindung zur Edge-Verwaltungs-API konfigurieren, finden Sie unter Entwickler erstellen -Portal.

Cloudbasierte Version von Edge

Wenn Ihr Portal eine Verbindung zur cloudbasierten Version von Edge herstellt, wird die URL für den Edge- Management API ist von Apigee für die Verwendung von TLS vorkonfiguriert. Bei der Konfiguration des Portals greifen Sie auf das Edge-Management-API unter Verwendung der URL https://api.enterprise.apigee.com/v1.

Private Cloud-Installation von Edge

Für eine Private Cloud-Installation von Edge befindet sich die URL der Edge-Verwaltungs-API in der Formular:
http://EdgePrivateCloudIp:8080/v1
oder:
https://EdgePrivateCloudIp:TLSport/v1

wobei EdgePrivateCloudIp die IP-Adresse des Edge-Management-Systems ist Der Serverserver und TLSport ist der TLS-Port für die Edge Management API. Je nach Edge-Konfiguration könnte die Portnummer beispielsweise 8443 oder sogar 8080 sein.

Konfigurieren von TLS zwischen Entwicklern und dem Portal

Wie Sie TLS zwischen Entwicklern und dem Portal konfigurieren, hängt davon ab, wie Sie die Portal: Cloud oder Apigee Edge for 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 Zwecke Cloud-Portale

Für alle von Apigee empfohlenen Private Cloud-Installationen des Portals muss das Portal hinter einem Load-Balancer an:

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, ist daher das vom Load-Balancer abhängig ist. Weitere Informationen finden Sie in der Dokumentation zu Ihrem Load-Balancer Informationen.
  • TLS auf dem Portal selbst konfigurieren: Bei Bedarf können Sie TLS auf der auf dem Webserver, auf dem das Portal gehostet wird. Siehe Konfigurieren des Portals für die Verwendung HTTPS.

Sie müssen ein eigenes TLS-Zertifikat abrufen, bevor Sie das Portal in einer Produktionsumgebung bereitstellen können zu verbessern.

Wird konfiguriert Zusätzliche TLS-Einstellungen

Sie können die Datei sites/default/settings.local.php (Cloud) bearbeiten. oder sites/default/settings.php (Privat) Cloud) die TLS-Konfiguration für das Portal ä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 http://php.net/manual/en/function.ini-set.php.

Sie können folgende Eigenschaften in der Datei sites/default/settings.local.php (Cloud) festlegen. oder sites/default/settings.php (Privat) Cloud).

  • cookie_httponly (Empfohlen) Gibt an, dass dieses Cookie nur über das HTTP-Protokoll zugänglich ist. Festlegen Property als:

    ini_set('session.cookie_httponly', true);
  • session.cookie_secure - (Optional) Gibt an, dass Cookies nur über sichere Verbindungen gesendet werden können. Dieses bedeutet, dass alle Inhalte über HTTPS bereitgestellt werden müssen. Wenn diese Einstellung aktiviert ist, kann die Website über HTTP funktionieren. Legen Sie diese Eigenschaft fest als:

    ini_set('session.cookie_secure', true);
  • gc_maxlifetime und cookie_lifetime: gc_lifeteime (optional) gibt die Anzahl der Sekunden an, nach denen Daten möglicherweise bereinigt werden können, und cookie_lifetime 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 unter Aktivieren Sie SSL für sichere HTTPS-Kommunikation auf der Dokument-Website von Pantheon.

Wird konfiguriert TLS mit Load-Balancern

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 an das Back-End weiter über http://. Das spart Back-End-Servern den Aufwand für die Entschlüsselung von https://-Nachrichten selbst.

Wenn Load-Balancer unverschlüsselte HTTP-Nachrichten an Server im selben Rechenzentrum weiterleiten, ist Sicherheit kein Thema. Wenn jedoch Load-Balancer Nachrichten über http:// an Server außerhalb der Daten weiterleiten, wie Ihr Apigee-Entwicklerportal, sind die Nachrichten unverschlüsselt. Dadurch wird eine eine Sicherheitslücke haben.

Wenn sich Ihr Entwicklerportal hinter Load-Balancern befindet, die TLS-Beendigung verwenden, und Sie alle Zugriffe über https:// erfolgen sollen, müssen die Seiten der Website Sie dürfen nur https://-Links enthalten. Außerdem müssen Sie den folgenden Code in das Entwicklerportal sites/default/settings.local.php (Cloud) einfügen. oder sites/default/settings.php (Privat) Cloud). Da das Lastenausgleichsmodul den Inhalt des HTML-Seiten verwenden, sorgt der Code dafür, dass alle an den Client übergebenen Links mit https:// beginnen.

Zum Konfigurieren von TLS mit Load-Balancern fügen Sie der Datei sites/default/settings.local.php (Cloud) die folgenden Zeilen hinzu: oder sites/default/settings.php (Privat) Cloud).

// 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:

Portal-Traffic zu HTTPS weiterleiten

Sie können den gesamten Portaltraffic zu HTTPS weiterleiten, indem Sie Ihre sites/default/settings.local.php (Cloud) aktualisieren oder sites/default/settings.php (Privat) Cloud). Welche Updates erforderlich sind, hängt davon ab, ob Sie auf derselben oder mehrere Hostnamen.

Weiterleitung zu HTTPS auf demselben Hostnamen

Fügen Sie der Datei sites/default/settings.local.php (Cloud) den folgenden Code hinzu oder sites/default/settings.php (Private Cloud) in Weiterleitung an den gesamten Portal-Traffic zu HTTPS auf demselben Hostnamen (z. B. *.devportal.apigee.io).

Wenn ein Entwickler in diesem Szenario Ihr Portal unter live-example.devportal.apigee.io besucht, aber auf ein Zertifikat zugreifen muss, das für devportal.example.com hochgeladen wurde, wird die Anfrage scheitern.

// 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 der Datei sites/default/settings.local.php (Cloud) den folgenden Code hinzu oder Datei sites/default/settings.php (Private Cloud) in den gesamten Portal-Traffic an HTTPS für mehrere Hostnamen weiterleiten.

  // 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;
  }
}