Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Portalı, TLS kullanacak şekilde yapılandırabilirsiniz. Portal için TLS yapılandırma prosedürü, portalı nasıl dağıttığınıza bağlıdır:
- Bulut: TLS'yi, portal için bulut tabanlı barındırma hizmetleri olan Pantheon veya Acquia'dan yapılandırın.
- Apigee Edge for Private Cloud: Portalı barındıran sunucuda şirket içinde TLS'yi yapılandırın.
TLS ve portal
Aşağıdaki resimde, portalın TLS kullandığı iki yer gösterilmektedir:
- Portal ile Edge management API arasındaki iletişim için.
.
. Portal, bağımsız bir sistem olarak çalışmaz. Bunun yerine, portal tarafından kullanılan bilgilerin çoğu aslında Edge'de depolanır. Edge, Edge'in bulutta veya şirket içinde bir Private Cloud yüklemesi olarak dağıtılabilir. Portal, gerektiğinde bilgi almak veya bilgi göndermek için Edge Management API'ye HTTP veya HTTPS isteğinde bulunur.
.
. Portalınızı oluştururken gerçekleştirmeniz gereken ilk adımlardan biri Edge management API'nin URL'sini belirtmektir. Edge Management API'nin yapılandırmasına bağlı olarak bu URL, TLS kullanabilir. Daha fazla bilgi için Geliştirici portalınızı oluşturmaya başlama başlıklı makaleyi inceleyin. - Geliştiriciler ile portal arasındaki iletişim için kullanılır.
.
. API'lerinizi dağıtmak için Geliştirici Hizmetleri portalını kullandığınızda, geliştiricileriniz uygulamaları kaydetmek ve API anahtarlarını almak için portala giriş yapar. Giriş kimlik bilgileri ve API anahtarı, güvenliğini sağlamak için HTTPS üzerinden göndermek istediğiniz özel bilgilerdir. Bu tür özel bilgiler HTTPS üzerinden gönderilmelidir.
.
. Bu senaryoda TLS'yi yapılandırma şekliniz, portalı nasıl dağıttığınıza bağlıdır: bulut veya Private Cloud için Apigee Edge. Aşağıdaki bölümlerde her iki senaryo da açıklanmaktadır.
Portal ve Edge management API arasında TLS'yi yapılandırma
Edge Management API'nin yapılandırması, iletişimin TLS'yi kullanıp kullanamayacağını belirler. Edge Management API, TLS kullanacak şekilde yapılandırılmışsa portal HTTPS kullanabilir. Aksi takdirde, portal HTTP üzerinden Edge ile iletişim kurar. Bu nedenle, portal geliştiricisi olarak sadece Edge'in portal ile Edge arasındaki bağlantıyı kuracak şekilde nasıl yapılandırıldığını bilmeniz gerekir.
Edge management API ile bağlantıyı yapılandırmada kullandığınız prosedür için Geliştirici portalınızı oluşturmaya başlama başlıklı makaleyi inceleyin.
Edge'in bulut tabanlı sürümü
Portalınız Edge'in bulut tabanlı sürümüne bağlanıyorsa Edge management API'nin URL'si Apigee tarafından TLS kullanacak şekilde önceden yapılandırılır. Portalı yapılandırırken https://api.enterprise.apigee.com/v1 URL'sini kullanarak Edge yönetim API'sine erişirsiniz.
Edge'in Private Cloud yüklemesi
Edge'in Private Cloud kurulumu için Edge management API'nin URL'si şu biçimdedir:
http://EdgePrivateCloudIp:8080/v1?
.
veya:
https://EdgePrivateCloudIp:TLSport/v1
Burada EdgePrivateCloudIp, Uç Yönetim Sunucusu sunucusunun IP adresidir. TLSport ise Edge Management API için TLS bağlantı noktasıdır. Örneğin, bağlantı noktası numarası Edge yapılandırmasına bağlı olarak 8443, hatta 8080 olabilir.
Geliştiriciler ve portal arasında TLS'yi yapılandırma
Geliştiriciler ile portal arasında TLS'yi yapılandırma şekliniz, portalı nasıl dağıttığınıza bağlıdır: Cloud veya Private Cloud için Apigee Edge.
Bulut tabanlı portallar
Panteon
Pantheon, platformundaki tüm siteler için Pantheon Global CDN ve Let's Encrypt üzerinden ücretsiz ve otomatik olarak HTTPS sağlar. Ayrıca Pantheon'un Global CDN'sinde HTTPS konusuna bakın.
Acquia
Acquia kullanarak TLS/SSL'yi etkinleştirmek için SSL'yi Etkinleştirme bölümüne bakın.Private Cloud portalları için Edge
Portalda Apigee tarafından önerilen tüm Private Cloud kurulumları için portalın aşağıda gösterildiği gibi bir yük dengeleyicinin arkasında olması gerekir:
Bu nedenle, şirket içi yüklemeler için TLS'yi yapılandırmak üzere iki seçeneğiniz vardır:
- TLS'yi yük dengeleyicide yapılandırın: TLS'yi portalda değil, yük dengeleyicinin kendisinde yapılandırın. Dolayısıyla, TLS'yi yapılandırmak için kullandığınız prosedür yük dengeleyiciye bağlıdır. Daha fazla bilgi için yük dengeleyicinizle ilgili belgelere bakın.
- TLS'yi portalda yapılandırın: Gerekirse portalı barındıran web sunucusunda TLS'yi yapılandırabilirsiniz. Apigee, varsayılan olarak Apache web sunucusunu yükler. Apache için TLS'yi yapılandırma hakkında bilgi edinmek isterseniz HTTP Secure'u (HTTPS) Etkinleştirme ziyaret edin.
Portalı bir üretim ortamına dağıtabilmek için önce kendi TLS sertifikanızı almanız gerekir.
Ek TLS ayarlarını yapılandırma
Portalda TLS'de yapılandırma değişiklikleri yapmak için sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyasını düzenleyebilirsiniz.
Dosyayı düzenlerken bir özellik ayarlamak için ini_set() işlevinin örneklerini ekleyin. Bu işlev hakkında daha fazla bilgi için bkz: ini_set.
sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyasında aşağıdaki özellikleri ayarlayabilirsiniz:
- cookie_httponly: (Önerilir) Çerezin yalnızca HTTP protokolü üzerinden erişilebilir olduğunu belirtir. Bu özelliği şu şekilde ayarlayın:
. ini_set('session.cookie_httponly', true); - session.cookie_secure - (İsteğe bağlı) Çerezlerin yalnızca güvenli bağlantılar üzerinden gönderilebileceğini belirtir. Ancak bu, tüm içeriğin HTTPS üzerinden sunulması gerektiği anlamına gelir. Bu ayar etkinleştirilirse site HTTP üzerinden çalışmaz. Bu özelliği şu şekilde ayarlayın:
. ini_set('session.cookie_secure', true); - gc_maslifetime ve cookie_lifetime: (İsteğe bağlı) gc_lifeteime verilerin kaç saniye sonra temizlenebileceğini belirtir. cookie_lifetime, çerezin ömrünü saniye cinsinden belirtir. Bu özellikleri şu şekilde ayarlayın:
. ini_set('session.gc_maxlifetime', 3600);
ini_set('session.cookie_lifetime', 3600);
Geliştirici portalı ile istemciler arasında TLS'yi ayarlama hakkında daha fazla bilgi için Pantheon doküman sitesindeki Güvenli HTTPS İletişimi için SSL'yi Etkinleştir bölümüne bakın.
Yük Dengeleyicilerle TLS'yi Yapılandırma
Daha iyi performans için yük dengeleyiciler bazen TLS sonlandırma işlemi gerçekleştirecek şekilde yapılandırılır. TLS sonlandırmasıyla yük dengeleyiciler https:// üzerinden gönderilen iletilerin şifresini çözer ve iletileri http:// üzerinden arka uç sunucularına yönlendirir. Böylece arka uç sunucuları, https:// mesajlarının şifresini çözmenin ek yükünü ortadan kaldırır.
Yük dengeleyiciler şifrelenmemiş http mesajlarını aynı veri merkezindeki sunuculara yönlendiriyorsa güvenlik sorun teşkil etmez. Ancak yük dengeleyiciler mesajları http:// üzerinden veri merkezi dışındaki sunuculara yönlendirirse (ör. Apigee geliştirici portalınız) mesajlar şifrelenmez ve bu da bir güvenlik deliği açar.
Geliştirici portalınız, TLS sonlandırma kullanan yük dengeleyicilerin arkasındaysa ve tüm trafiğin https:// üzerinden sunulmasını istiyorsanız web sitesi sayfalarında yalnızca https:// bağlantıları bulunmalıdır. Ayrıca, sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyanıza aşağıdaki kodu eklemeniz gerekir. Yük dengeleyici HTML sayfalarının içeriğini otomatik olarak dönüştürmediğinden kod, istemciye iletilen tüm bağlantıların https:// ile başlamasını sağlar.
TLS'yi yük dengeleyicilerle yapılandırmak için, sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyasına aşağıdaki satırları ekleyin:
// 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; } }
Daha fazla bilgi için aşağıdaki sayfaları inceleyin:
- Yük dengeleyici veya ters proxy kullanma
- X-Forwarded-* HTTP üstbilgisi alternatiflerini destekleme
- SSL boşaltma ters proxy'sinin arkasındaDrupal: Bu yapılandırma doğru mu?
Portal trafiğini HTTPS'ye yönlendirme
sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyanızı güncelleyerek tüm portal trafiğini HTTPS'ye yönlendirebilirsiniz. Gerekli güncellemeler, HTTPS'ye aynı ana makine adında mı yoksa birden fazla ana makine adıyla mı yönlendirme yaptığınıza bağlı olarak değişiklik gösterir.
Aynı ana makine adında HTTPS'ye yönlendiriliyor
Tüm portal trafiğini aynı ana makine adında (örneğin, *.devportal.Apigee.io) HTTPS'ye yönlendirmek için sites/default/settings.local.php (bulut) veya sites/default/settings.php (Private Cloud) dosyanıza aşağıdaki kodu ekleyin.
Bu senaryoda, bir geliştirici live-example.devportal.apigee.io adresindeki portalınızı ziyaret ediyorsa ancak live-example.devportal.apigee.io için yüklenmiş bir sertifikaya erişmesi gerekiyorsa istek başarısız olur.
// 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; } }
Birden fazla ana makine adında HTTPS'ye yönlendirme
Tüm portal trafiğini birden fazla ana makine adında HTTPS'ye yönlendirmek için sites/default/settings.local.php dosyanıza (bulut) veya sites/default/settings.php dosyanıza (Private Cloud) aşağıdaki kodu ekleyin.
// 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; } }