Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Możesz skonfigurować portal tak, aby używał TLS. Procedura konfiguracji TLS dla portalu zależy od sposobu wdrożenia portalu:
- Cloud: skonfiguruj protokół TLS z Pantheon lub Acquia, czyli hostingu w chmurze. i usługach portalu.
- Apigee Edge dla Private Cloud: skonfiguruj lokalnie protokół TLS na serwerze który hostuje portal.
Protokół TLS i portal
Poniższy obraz przedstawia 2 miejsca, w których portal używa protokołu TLS:
- Na potrzeby komunikacji między portalem a interfejsem Edge Management API.
Portal nie działa jako samodzielny system. Zamiast tego większość informacji wykorzystywanych przez portal jest w rzeczywistości przechowywany w Edge, gdzie można wdrożyć ją w chmurze lub lokalnie jako instalację Private Cloud. W razie potrzeby portal generuje HTTP lub HTTPS do interfejsu Edge Management API w celu pobrania lub wysłania informacji.
Jedną z pierwszych czynności, jakie musisz wykonać podczas tworzenia portalu, jest określenie adresu URL Edge Management API. W zależności od konfiguracji interfejsu Edge Management API adres URL mogą używać protokołu TLS. Patrz sekcja Tworzenie portalu dla deweloperów, - Do komunikacji między deweloperami a portalem.
Gdy wdrażasz interfejsy API w portalu Usług dla deweloperów, deweloperzy logują się w do rejestrowania aplikacji i otrzymywania kluczy interfejsu API. Dane logowania i klucz interfejsu API są zastrzeżone informacje, które chcesz wysyłać za pomocą protokołu HTTPS, by zapewnić ich bezpieczeństwo. Ten typów zastrzeżonych informacji powinny być przesyłane przez HTTPS.
Sposób konfigurowania protokołu TLS w tym scenariuszu zależy od sposobu wdrożenia portalu: Cloud lub Apigee Edge dla chmury prywatnej. W sekcjach poniżej w obu przypadkach.
Konfigurowanie protokołu TLS między portalami oraz interfejs Edge Management API
Konfiguracja interfejsu Edge Management API określa, czy komunikacja może być używana TLS. Jeśli interfejs Edge Management API jest skonfigurowany do używania TLS, portal może używać HTTPS. W przeciwnym razie portal komunikuje się z Edge przez HTTP. Dlatego jako programista portali muszą tylko wiedzieć, jak skonfigurowana jest przeglądarka Edge Edge.
Instrukcje konfigurowania połączenia z interfejsem Edge Management API znajdziesz w sekcji Tworzenie konta programisty .
Oparta na chmurze wersja Edge
Jeśli portal łączy się z chmurową wersją Edge, adres URL Edge interfejs management API jest wstępnie skonfigurowany przez Apigee do korzystania z TLS. Konfigurując portal, uzyskujesz dostęp do Interfejs Edge Management API przy użyciu adresu URL https://api.enterprise.apigee.com/v1.
Instalacja Edge w chmurze prywatnej
W przypadku instalacji Edge w chmurze prywatnej adres URL interfejsu Edge Management API znajduje się w
formularz:
http://EdgePrivateCloudIp:8080/v1
lub:
https://EdgePrivateCloudIp:TLSport/v1
gdzie EdgePrivateCloudIp to adres IP usługi Edge Management Serwer serwera i TLSport to port TLS dla interfejsu Edge Management API. W zależności od konfiguracji Edge port może na przykład mieć wartość 8443, a nawet 8080.
Konfigurowanie protokołu TLS między programistami a portal
Sposób konfigurowania TLS między deweloperami a portalem zależy od sposobu wdrożenia portalu: Cloud lub Apigee Edge dla chmury prywatnej.
Portale działające w chmurze
Panteon
Pantheon oferuje bezpłatny, automatyczny protokół HTTPS dla wszystkich witryn na swojej platformie, korzystając z Pantheon Global CDN i funkcji Let's Encrypt. Zobacz też HTTPS w globalnej sieci CDN firmy Pantheon.
Acquia
Aby włączyć TLS/SSL za pomocą usługi Acquia, zobacz Włączanie SSL.Edge dla prywatnych Portale w chmurze
Wszystkie zalecane instalacje Apigee w chmurze prywatnej portalu wymagają, aby portal był: za systemem równoważenia obciążenia, jak widać poniżej:
Dlatego w przypadku instalacji lokalnych dostępne są 2 opcje konfigurowania protokołu TLS:
- Skonfiguruj TLS w systemie równoważenia obciążenia: skonfiguruj TLS w systemie równoważenia obciążenia. bezpośrednio w witrynie, a nie w portalu. Procedura, której używasz do konfigurowania TLS, jest więc w zależności od systemu równoważenia obciążenia. Więcej informacji znajdziesz w dokumentacji systemu równoważenia obciążenia i informacjami o nich.
- Skonfiguruj TLS w samym portalu: jeśli to konieczne, możesz skonfigurować TLS w serwer WWW hostujący portal. Zobacz Konfigurowanie portalu do użycia HTTPS, aby dowiedzieć się więcej.
Aby wdrożyć portal w środowisku produkcyjnym, musisz uzyskać własny certyfikat TLS dla środowiska.
Konfiguruję dodatkowe ustawienia TLS
Możesz edytować plik sites/default/settings.local.php (chmura) lub sites/default/settings.php (prywatny) Cloud), aby wprowadzić zmiany w konfiguracji TLS dla portalu.
Podczas edytowania pliku dodaj wystąpienia funkcji ini_set(), aby ustawić właściwość. Więcej informacji o tej funkcji znajdziesz na http://php.net/manual/en/function.ini-set.php.
Poniższe właściwości możesz ustawić w pliku sites/default/settings.local.php (cloud) lub sites/default/settings.php (prywatny) :
- cookie_httponly:
(Zalecane) Określa, że plik cookie jest dostępny tylko przez protokół HTTP. Ustaw
jako:
ini_set('session.cookie_httponly', true); - session.cookie_secure
– (opcjonalne) określa, że pliki cookie mogą być wysyłane tylko przez bezpieczne połączenia. Jednak
oznacza, że cała treść musi być wyświetlana przez HTTPS. Jeśli to ustawienie jest włączone, witryna nie będzie
i przetwarzania danych przez HTTP. Ustaw tę właściwość jako:
ini_set('session.cookie_secure', true); - gc_maxlifetime
i cookie_lifetime:
(Opcjonalnie) gc_lifeteime
określa liczbę sekund, po których można wyczyścić dane, a także
cookie_lifetime określa
czas przechowywania pliku cookie w sekundach. Ustaw te właściwości jako:
ini_set('session.gc_maxlifetime', 3600);
ini_set('session.cookie_lifetime', 3600);
Więcej informacji o konfigurowaniu protokołu TLS między portalem dla programistów a klientami znajdziesz w sekcji Włącz SSL dla bezpiecznej komunikacji HTTPS w witrynie z dokumentami Pantheon.
Konfiguruję TLS z systemami równoważenia obciążenia
W celu uzyskania lepszej wydajności systemy równoważenia obciążenia są czasami skonfigurowane tak, aby kończyły działanie TLS. Po zakończeniu protokołu TLS systemy równoważenia obciążenia odszyfrowują wiadomości wysyłane przez https:// i przekazują je do backendu z serwerów przez http://. Dzięki temu zaoszczędzisz serwery backendu, wymagania związane z odszyfrowywaniem wiadomości https://.
Jeśli systemy równoważenia obciążenia przekazują niezaszyfrowane komunikaty HTTP na serwery w tym samym centrum danych, że bezpieczeństwo to nie problem. Jeśli jednak systemy równoważenia obciążenia przekazują wiadomości przez http:// do serwerów spoza danych takie jak portal dla programistów Apigee, wiadomości nie są zaszyfrowane, co otwiera w zabezpieczeniach.
Jeśli Twój portal dla programistów znajduje się za systemami równoważenia obciążenia, które stosują zakończenie TLS, Jeśli chcesz, by cały ruch był obsługiwany przez https://, strony witryny muszą zawierają tylko linki https://. i musisz dodać ten kod do portalu dla programistów sites/default/settings.local.php (chmura) lub sites/default/settings.php (prywatny) Cloud). System równoważenia obciążenia nie przekształca automatycznie zawartości stron HTML, kod sprawia, że wszystkie linki przekazywane do klienta zaczynają się od https://.
Aby skonfigurować protokół TLS w systemach równoważenia obciążenia, dodaj następujące wiersze do pliku sites/default/settings.local.php (chmura) lub sites/default/settings.php (prywatny) :
// 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; } }
Aby dowiedzieć się więcej, zobacz:
- https://drupal.org/node/425990
- https://drupal.org/node/313145
- http://drupal.stackexchange.com/questions/102091/drupal-behind-a-ssl-offloading-reverse-proxy-is-this-config-correct
Przekierowuję ruch do portalu do HTTPS
Możesz przekierować cały ruch do HTTPS w portalu, aktualizując plik sites/default/settings.local.php (chmura) lub sites/default/settings.php (prywatny) Cloud). Wymagane aktualizacje różnią się w zależności od tego, czy przekierowanie do HTTPS lub nazwy hosta.
Przekierowanie do HTTPS w tej samej nazwie hosta
Dodaj następujący kod do pliku sites/default/settings.local.php (cloud) lub sites/default/settings.php (Private Cloud) w przekierowanie na cały ruch do HTTPS w portalu z tą samą nazwą hosta (na przykład *.devportal.apigee.io).
W takim przypadku, jeśli deweloper odwiedza Twój portal pod adresem live-example.devportal.apigee.io, ale potrzebuje dostępu do certyfikatu, który został przesłany dla witryny devportal.example.com, żądanie niepowodzenie.
// 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; } }
Przekierowanie do HTTPS na wielu nazwach hostów
Dodaj następujący kod do pliku sites/default/settings.local.php (cloud) lub sites/default/settings.php (Private Cloud) w przekierowują cały ruch do portalu do HTTPS w przypadku wielu nazw hostów.
// 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; } }