आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
TLS का इस्तेमाल करने के लिए, पोर्टल को कॉन्फ़िगर किया जा सकता है. पोर्टल के लिए TLS की कॉन्फ़िगरेशन प्रोसेस इस बात पर निर्भर करती है कि आपने पोर्टल को कैसे डिप्लॉय किया है:
- Cloud: पोर्टल के लिए क्लाउड-आधारित होस्टिंग सेवा, Pantheon या Acquia से TLS को कॉन्फ़िगर करें.
- Apigee Edge: पोर्टल को होस्ट करने वाले सर्वर पर, कंपनी की इमारत में TLS को कॉन्फ़िगर करें.
TLS और पोर्टल
नीचे दी गई इमेज में दो जगहें दिखाई गई हैं जहां पोर्टल में TLS का इस्तेमाल किया जाता है:
- पोर्टल और Edge मैनेजमेंट एपीआई के बीच कम्यूनिकेशन के लिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है यह पोर्टल एक स्वतंत्र सिस्टम के रूप में काम नहीं करता. इसके बजाय, पोर्टल में इस्तेमाल की जाने वाली ज़्यादातर जानकारी Edge पर सेव की जाती है, जहां Edge को क्लाउड या कंपनी की इमारत में प्राइवेट क्लाउड इंस्टॉलेशन के तौर पर डिप्लॉय किया जा सकता है. ज़रूरत पड़ने पर पोर्टल, जानकारी हासिल करने या जानकारी भेजने के लिए Edge मैनेजमेंट एपीआई को एचटीटीपी या एचटीटीपीएस अनुरोध करता है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है पोर्टल बनाते समय, आपको सबसे पहले Edge मैनेजमेंट एपीआई का यूआरएल डालना होगा. Edge management API को कैसे कॉन्फ़िगर किया गया है, इसके आधार पर वह यूआरएल, TLS का इस्तेमाल कर सकता है. ज़्यादा जानकारी के लिए, अपना डेवलपर पोर्टल बनाना शुरू करें देखें. - डेवलपर और पोर्टल के बीच कम्यूनिकेशन के लिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है जब एपीआई को डिप्लॉय करने के लिए डेवलपर सेवाएं पोर्टल का इस्तेमाल किया जाता है, तो आपके डेवलपर ऐप्लिकेशन रजिस्टर करने और एपीआई पासकोड पाने के लिए, पोर्टल में लॉग इन करते हैं. लॉगिन क्रेडेंशियल और एपीआई पासकोड, मालिकाना हक की जानकारी है. आपको इन्हें एचटीटीपीएस पर भेजना है, ताकि यह पक्का किया जा सके कि ये सुरक्षित हैं. मालिकाना हक वाली इस तरह की जानकारी, एचटीटीपीएस पर भेजी जानी चाहिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस स्थिति के लिए TLS को कॉन्फ़िगर करने का तरीका इस बात पर निर्भर करता है कि आपने पोर्टल को किस तरह डिप्लॉय किया है: प्राइवेट क्लाउड के लिए Cloud या Apigee Edge. इन सेक्शन में, दोनों स्थितियों के बारे में बताया गया है.
पोर्टल और Edge मैनेजमेंट एपीआई के बीच TLS को कॉन्फ़िगर करना
Edge management API के कॉन्फ़िगरेशन से यह तय होता है कि कम्यूनिकेशन, TLS का इस्तेमाल कर सकता है या नहीं. अगर Edge management API को TLS का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, तो पोर्टल एचटीटीपीएस का इस्तेमाल कर सकता है. अगर ऐसा नहीं है, तो पोर्टल एचटीटीपी के बजाय Edge से संपर्क करता है. इसलिए, पोर्टल डेवलपर के तौर पर आपको सिर्फ़ यह जानने की ज़रूरत है कि पोर्टल और Edge के बीच कनेक्शन सेट करने के लिए Edge को कैसे कॉन्फ़िगर किया गया है.
Edge management API से कनेक्शन कॉन्फ़िगर करने के लिए, आपने जिस प्रोसेस का इस्तेमाल किया है उसके लिए अपना डेवलपर पोर्टल बनाना शुरू करें लेख पढ़ें.
Edge का क्लाउड-आधारित वर्शन
अगर आपका पोर्टल Edge के क्लाउड-आधारित वर्शन से कनेक्ट होता है, तो Edge management API के लिए यूआरएल को Apigee, पहले से कॉन्फ़िगर कर सकता है, ताकि टीएलएस का इस्तेमाल किया जा सके. पोर्टल को कॉन्फ़िगर करते समय, https://api.enterprise.apigee.com/v1 यूआरएल का इस्तेमाल करके, Edge मैनेजमेंट एपीआई को ऐक्सेस किया जा सकता है.
Edge का निजी क्लाउड इंस्टॉलेशन
Edge के निजी क्लाउड इंस्टॉलेशन के लिए, Edge मैनेजमेंट एपीआई का यूआरएल इस तरह का होता है:
http://EdgePrivateCloudIp:8080/v1?
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
या:
https://EdgePrivateCloudIp:TLSport/v1
जहां EdgePrivateCloudIp Edge मैनेजमेंट सर्वर सर्वर का आईपी पता है और TLSport, Edge management API के लिए TLS पोर्ट है. उदाहरण के लिए, Edge कॉन्फ़िगरेशन के आधार पर पोर्ट नंबर 8443 या 8080 भी हो सकता है.
डेवलपर और पोर्टल के बीच TLS कॉन्फ़िगर करना
डेवलपर और पोर्टल के बीच TLS को कॉन्फ़िगर करने का तरीका इस बात पर निर्भर करता है कि आपने पोर्टल को कैसे डिप्लॉय किया है: प्राइवेट क्लाउड के लिए क्लाउड या Apigee Edge.
क्लाउड-आधारित पोर्टल
पैंथियॉन
Pantheon अपने प्लैटफ़ॉर्म पर सभी साइटों के लिए, Pantheon Global CDN के ज़रिए और Let’s Encrypt का इस्तेमाल करके, बिना किसी शुल्क के अपने-आप एचटीटीपीएस की सुविधा उपलब्ध कराता है. Pantheon के ग्लोबल सीडीएन पर एचटीटीपीएस भी देखें.
Acquia
Acquia का इस्तेमाल करके TLS/एसएसएल को चालू करने के लिए, एसएसएल को चालू करना देखें.प्राइवेट क्लाउड पोर्टल के लिए Edge
Apigee के सुझाए गए सभी निजी क्लाउड इंस्टॉलेशन के लिए, यह ज़रूरी है कि पोर्टल में लोड बैलेंसर हो. इसके बारे में नीचे बताया गया है:
इसलिए, कंपनी की इमारत में इंस्टॉल करने के लिए, आपके पास TLS को कॉन्फ़िगर करने के दो विकल्प होते हैं:
- लोड बैलेंसर पर TLS को कॉन्फ़िगर करना: लोड बैलेंसर पर ही TLS को कॉन्फ़िगर करें, न कि पोर्टल पर. इसलिए, TLS को कॉन्फ़िगर करने के लिए इस्तेमाल की जाने वाली प्रोसेस, लोड बैलेंसर पर निर्भर करती है. ज़्यादा जानकारी के लिए, अपने लोड बैलेंसर पर मौजूद दस्तावेज़ देखें.
- पोर्टल पर TLS कॉन्फ़िगर करें: अगर ज़रूरी हो, तो पोर्टल को होस्ट करने वाले वेब सर्वर पर TLS को कॉन्फ़िगर किया जा सकता है. डिफ़ॉल्ट रूप से, Apigee, Apache वेब सर्वर इंस्टॉल करता है. Apache के लिए TLS को कॉन्फ़िगर करने के बारे में जानकारी पाने के लिए, एचटीटीपी सिक्योर (एचटीटीपीएस) को चालू करने का तरीका देखें .
पोर्टल को प्रोडक्शन एनवायरमेंट में डिप्लॉय करने से पहले, आपके पास अपना TLS सर्टिफ़िकेट होना चाहिए.
TLS की अतिरिक्त सेटिंग कॉन्फ़िगर करना
पोर्टल के लिए TLS के कॉन्फ़िगरेशन में बदलाव करने के लिए, sites/default/settings.local.php (क्लाउड) या sites/default/settings.php (निजी क्लाउड) फ़ाइल में बदलाव किया जा सकता है.
फ़ाइल में बदलाव करते समय, प्रॉपर्टी सेट करने के लिए ini_set() फ़ंक्शन के इंस्टेंस जोड़ें. इस फ़ंक्शन के बारे में ज़्यादा जानकारी के लिए, ini_set देखें.
sites/default/settings.local.php (क्लाउड) या sites/default/settings.php (निजी क्लाउड) फ़ाइल में, इन प्रॉपर्टी को सेट किया जा सकता है:
- cookie_httponly: (सुझाया गया) वह कुकी बताता है कि कुकी को सिर्फ़ एचटीटीपी प्रोटोकॉल पर ऐक्सेस किया जा सकता है. इस प्रॉपर्टी को इस तरह सेट करें:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ini_set('session.cookie_httponly', true); - session.cookie_secure - (ज़रूरी नहीं) इससे पता चलता है कि कुकी सिर्फ़ सुरक्षित कनेक्शन पर भेजी जा सकती हैं. हालांकि, इसका मतलब है कि सारा कॉन्टेंट एचटीटीपीएस पर ही दिखाया जाना चाहिए. अगर यह सेटिंग चालू है, तो साइट एचटीटीपी पर काम नहीं करेगी. इस प्रॉपर्टी को इस तरह सेट करें:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ini_set('session.cookie_secure', true); - gc_maslifetime और cookie_lifetime: (ज़रूरी नहीं) gc_lifeteime सेकंड की वह संख्या बताता है जिसके बाद डेटा साफ़ किया जा सकता है और cookie_lifetime कुकी के लाइफ़टाइम की जानकारी सेकंड में देता है. इन प्रॉपर्टी को इस तरह सेट करें:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ini_set('session.gc_maxlifetime', 3600);
ini_set('session.cookie_lifetime', 3600);
डेवलपर पोर्टल और क्लाइंट के बीच TLS सेट अप करने के बारे में ज़्यादा जानकारी के लिए, Pantheon दस्तावेज़ साइट पर सुरक्षित एचटीटीपीएस कम्यूनिकेशन के लिए एसएसएल चालू करना देखें.
लोड बैलेंसर के साथ TLS को कॉन्फ़िगर करना
बेहतर परफ़ॉर्मेंस के लिए, लोड बैलेंसर को कभी-कभी TLS खत्म करने के लिए कॉन्फ़िगर किया जाता है. TLS बंद होने पर, लोड बैलेंसर https:// पर भेजे गए मैसेज को डिक्रिप्ट करते हैं. साथ ही, वे मैसेज को http:// पर बैकएंड सर्वर पर फ़ॉरवर्ड करते हैं. इससे https:// मैसेज डिक्रिप्ट करने का काम, बैकएंड सर्वर पर करना आसान हो जाता है.
अगर लोड बैलेंसर, एन्क्रिप्ट (सुरक्षित) नहीं किए गए एचटीटीपी मैसेज को उसी डेटा सेंटर के सर्वर पर फ़ॉरवर्ड करते हैं, तो सुरक्षा से जुड़ी कोई समस्या नहीं होती. हालांकि, अगर लोड बैलेंसर डेटा सेंटर के बाहर के सर्वर (जैसे कि आपका Apigee डेवलपर पोर्टल) पर मैसेज को http:// से ज़्यादा फ़ॉरवर्ड करते हैं, तो मैसेज एन्क्रिप्ट नहीं किए जाते हैं. इससे सुरक्षा के लिए एक छेद हो जाता है.
अगर आपका डेवलपर पोर्टल ऐसे लोड बैलेंसर के पीछे होता है जो TLS बंद करने की सुविधा का इस्तेमाल कर रहे हैं और आपको सारा ट्रैफ़िक https:// पर चाहिए, तो वेबसाइट के पेजों पर सिर्फ़ https:// लिंक होने चाहिए. साथ ही, आपको अपने डेवलपर पोर्टल sites/default/settings.local.php (क्लाउड) या sites/default/settings.php (प्राइवेट क्लाउड) फ़ाइल में, नीचे दिया गया कोड जोड़ना होगा. लोड बैलेंसर, एचटीएमएल पेजों के कॉन्टेंट को अपने-आप नहीं बदलता. इसलिए, कोड यह पक्का करता है कि क्लाइंट को भेजे गए सभी लिंक https:// से शुरू हों.
TLS को लोड बैलेंसर के साथ कॉन्फ़िगर करने के लिए, इन लाइनों को sites/default/settings.local.php (क्लाउड) या sites/default/settings.php (निजी क्लाउड) फ़ाइल में जोड़ें:
// 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; } }
ज़्यादा जानकारी के लिए, देखें:
- लोड बैलेंसर या रिवर्स प्रॉक्सी का इस्तेमाल करना
- X-Foreded-* एचटीटीपी हेडर के विकल्पों के साथ काम करना
- Drupal की मदद से, एसएसएल की मदद से रिवर्स प्रॉक्सी को लोड करने की कोशिश की जा रही है -- क्या यह कॉन्फ़िगरेशन सही है?
पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट किया जा रहा है
आपके पास अपनी sites/default/settings.local.php (क्लाउड) या sites/default/settings.php (प्राइवेट क्लाउड) फ़ाइल को अपडेट करके, सभी पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट किया जा सकता है. आपको एक ही होस्टनेम से एचटीटीपीएस पर रीडायरेक्ट किया जा रहा है या एक से ज़्यादा होस्टनेम के आधार पर, अपडेट अलग-अलग हो सकते हैं.
एक ही होस्टनेम पर एचटीटीपीएस पर रीडायरेक्ट करना
यहां दिए गए कोड को अपनी sites/default/settings.local.php (cloud) या sites/default/settings.php (निजी क्लाउड) फ़ाइल में इस कोड को जोड़ें, ताकि एक ही होस्टनेम पर सभी पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट किया जा सके (उदाहरण के लिए, *.devportal.apigee.io).
इस स्थिति में, अगर कोई डेवलपर live-example.devportal.apigee.io पर जाकर आपके पोर्टल पर आ रहा है, लेकिन उसे devportal.example.com के लिए अपलोड किए गए सर्टिफ़िकेट का ऐक्सेस चाहिए, तो अनुरोध स्वीकार नहीं किया जाएगा.
// 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; } }
एक से ज़्यादा होस्टनेम पर एचटीटीपीएस पर रीडायरेक्ट करना
एक से ज़्यादा होस्टनेम पर सभी पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट करने के लिए, अपनी sites/default/settings.local.php फ़ाइल (क्लाउड) या sites/default/settings.php फ़ाइल (प्राइवेट क्लाउड) में यह कोड जोड़ें.
// 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; } }