आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
TLS का इस्तेमाल करने के लिए, पोर्टल को कॉन्फ़िगर किया जा सकता है. पोर्टल के लिए TLS कॉन्फ़िगरेशन प्रोसेस यह इस बात पर निर्भर करता है कि आपने पोर्टल को कैसे डिप्लॉय किया है:
- Cloud: क्लाउड-आधारित होस्टिंग, Pantheon या Acquia से TLS को कॉन्फ़िगर करें पोर्टल के लिए सेवाएं.
- प्राइवेट क्लाउड के लिए Apigee Edge: सर्वर पर, कंपनी की इमारत में TLS को कॉन्फ़िगर करें पोर्टल को होस्ट किया जा रहा है.
TLS और पोर्टल
नीचे दी गई इमेज में दो जगहें दिखाई गई हैं जहां पोर्टल में TLS का इस्तेमाल किया जाता है:
- पोर्टल और Edge मैनेजमेंट एपीआई के बीच कम्यूनिकेशन के लिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है यह पोर्टल एक स्वतंत्र सिस्टम के रूप में काम नहीं करता. इसके बजाय, इस टूल का इस्तेमाल करने पर पोर्टल असल में Edge पर सेव होता है, जहां Edge को क्लाउड पर डिप्लॉय किया जा सकता है या निजी क्लाउड इंस्टॉलेशन के तौर पर कंपनी की इमारत में. ज़रूरत पड़ने पर, पोर्टल एक एचटीटीपी या एचटीटीपीएस बनाता है जानकारी फिर से पाने या जानकारी भेजने के लिए, Edge management API का इस्तेमाल किया जा सकता है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है पोर्टल बनाते समय सबसे पहले आपको Edge management API के साथ इस्तेमाल किया जा सकता है. Edge management API को कैसे कॉन्फ़िगर किया गया है, इसके आधार पर वह यूआरएल TLS का इस्तेमाल कर सकता है. वीडियो बनाने का तरीका देखें ज़्यादा जानकारी के लिए, डेवलपर पोर्टल पर जाएं. - डेवलपर और पोर्टल के बीच कम्यूनिकेशन के लिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है अपने API को डिप्लॉय करने के लिए, डेवलपर सेवाएं पोर्टल का इस्तेमाल करने पर, आपके डेवलपर इसमें लॉग इन करते हैं पोर्टल पर जाकर ऐप्लिकेशन रजिस्टर करें और एपीआई पासकोड पाएं. लॉगिन क्रेडेंशियल और एपीआई पासकोड मालिकाना हक की जानकारी है जिसे आप उनकी सुरक्षा पक्का करने के लिए एचटीटीपीएस पर भेजना चाहते हैं. यह मालिकाना जानकारी का टाइप एचटीटीपीएस पर भेजा जाना चाहिए.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस स्थिति में TLS को कॉन्फ़िगर करने का तरीका इस बात पर निर्भर करता है कि आपने पोर्टल: प्राइवेट क्लाउड के लिए क्लाउड या Apigee Edge. इन सेक्शन में बताया गया है दोनों ही स्थितियों को ध्यान में रखकर बनाया गया है.
पोर्टल के बीच TLS को कॉन्फ़िगर करना एज मैनेजमेंट एपीआई को आज़माएं.
Edge management API के कॉन्फ़िगरेशन से यह तय होता है कि कम्यूनिकेशन का इस्तेमाल किया जा सकता है या नहीं TLS. अगर Edge management API को TLS का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, तो पोर्टल एचटीटीपीएस का इस्तेमाल कर सकता है. अगर ऐसा नहीं है, तो पोर्टल एचटीटीपी के बजाय Edge से संपर्क करता है. इसलिए, पोर्टल डेवलपर के तौर पर आपको आपको सिर्फ़ यह जानने की ज़रूरत होगी कि पोर्टल और उनके बीच का कनेक्शन सेट करने के लिए Edge को कैसे कॉन्फ़िगर किया गया है किनारे.
Edge मैनेजमेंट एपीआई से कनेक्शन कॉन्फ़िगर करने के लिए, इस्तेमाल की जाने वाली प्रोसेस के बारे में यहां देखें डेवलपर बनाना पोर्टल पर जाएं.
Edge का क्लाउड-आधारित वर्शन
अगर आपका पोर्टल Edge के क्लाउड-आधारित वर्शन से कनेक्ट होता है, तो Edge का यूआरएल TLS का इस्तेमाल करने के लिए, management API को Apigee ने पहले से कॉन्फ़िगर किया है. पोर्टल को कॉन्फ़िगर करते समय, Edge मैनेजमेंट एपीआई के लिए, यूआरएल https://api.enterprise.apigee.com/v1 का इस्तेमाल करें.
Edge का निजी क्लाउड इंस्टॉलेशन
Edge के निजी क्लाउड इंस्टॉलेशन के लिए, Edge management API का यूआरएल
फ़ॉर्म:
http://EdgePrivateCloudIp:8080/v1
या:
https://EdgePrivateCloudIp:TLSport/v1
जहां EdgePrivateCloudIp Edge मैनेजमेंट का आईपी पता है सर्वर सर्वर और TLSport, Edge मैनेजमेंट एपीआई के लिए 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 कॉन्फ़िगर किया जा सकता है पोर्टल को होस्ट करने वाला वेब सर्वर. पोर्टल को इस्तेमाल करने के लिए कॉन्फ़िगर करना एचटीटीपीएस पर जाएं.
पोर्टल को प्रोडक्शन में डिप्लॉय करने से पहले, आपके पास अपना टीएलएस सर्टिफ़िकेट होना चाहिए पर्यावरण को ध्यान में रखते हुए काम करना.
कॉन्फ़िगर किया जा रहा है अतिरिक्त TLS सेटिंग
आपके पास sites/default/settings.local.php (क्लाउड) में बदलाव करने का विकल्प है या sites/default/settings.php (निजी Cloud) फ़ाइल का इस्तेमाल करके, पोर्टल के लिए TLS के कॉन्फ़िगरेशन में बदलाव किए जा सकते हैं.
फ़ाइल में बदलाव करते समय, प्रॉपर्टी सेट करने के लिए ini_set() फ़ंक्शन के इंस्टेंस जोड़ें. इस फ़ंक्शन के बारे में ज़्यादा जानकारी के लिए, http://php.net/manual/en/function.ini-set.php देखें.
sites/default/settings.local.php (क्लाउड) में इन प्रॉपर्टी को सेट किया जा सकता है या sites/default/settings.php (निजी Cloud) फ़ाइल:
- cookie_httponly:
(सुझाया गया) वह कुकी बताता है कि उसे सिर्फ़ एचटीटीपी प्रोटोकॉल पर ऐक्सेस किया जा सकता है. इसे सेट करें
प्रॉपर्टी:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ini_set('session.cookie_httponly', true); - session.cookie_secure
- (वैकल्पिक) इससे पता चलता है कि कुकी सिर्फ़ सुरक्षित कनेक्शन पर भेजी जा सकती हैं. हालांकि, इस
इसका मतलब है कि सारा कॉन्टेंट एचटीटीपीएस पर दिखाया जाना चाहिए. अगर यह सेटिंग चालू है, तो साइट ये काम नहीं करेगी
एचटीटीपी पर काम करते हैं. इस प्रॉपर्टी को इस तरह सेट करें:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ini_set('session.cookie_secure', true); - gc_maxlifetime
और 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:// मैसेज खुद ही डिक्रिप्ट करने के लिए, बैकएंड सर्वर काम करते हैं.
अगर लोड बैलेंसर, एन्क्रिप्ट (सुरक्षित) नहीं किए गए एचटीटीपी मैसेज को एक ही डेटा सेंटर के सर्वर पर फ़ॉरवर्ड करते हैं, सुरक्षा की कोई समस्या नहीं है. हालांकि, अगर लोड बैलेंसर, डेटा के बाहर मौजूद सर्वर पर http:// से ज़्यादा मैसेज फ़ॉरवर्ड करते हैं जैसे कि आपका Apigee डेवलपर पोर्टल, तो मैसेज एन्क्रिप्ट नहीं किए जाते हैं. इससे एक बॉक्स खुलता है सुरक्षा की कमी.
अगर आपका डेवलपर पोर्टल, ऐसे लोड बैलेंसर के पीछे मौजूद है जो TLS बंद करने की सुविधा का इस्तेमाल कर रहे हैं और आपको अगर आपको https:// पर सारा ट्रैफ़िक दिखाना है, तो वेबसाइट के पेजों के लिए सिर्फ़ https:// लिंक होने चाहिए और आपको अपने डेवलपर पोर्टल sites/default/settings.local.php (क्लाउड) में इस कोड को जोड़ना होगा या sites/default/settings.php (निजी Cloud) फ़ाइल से लिंक किया गया है. क्योंकि लोड बैलेंसर, एचटीएमएल पेजों पर, कोड यह पक्का करता है कि क्लाइंट को भेजे गए सभी लिंक https:// से शुरू हों.
TLS को लोड बैलेंसर के साथ कॉन्फ़िगर करने के लिए, इन लाइनों को sites/default/settings.local.php (क्लाउड) में जोड़ें या sites/default/settings.php (निजी 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; } }
ज़्यादा जानकारी के लिए, देखें:
- 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
पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट किया जा रहा है
अपने sites/default/settings.local.php (क्लाउड) को अपडेट करके, सभी पोर्टल ट्रैफ़िक को एचटीटीपीएस पर रीडायरेक्ट किया जा सकता है या sites/default/settings.php (निजी Cloud) फ़ाइल में भी सेव किया जा सकता है. आपको एचटीटीपीएस पर रीडायरेक्ट करने के आधार पर, अलग-अलग अपडेट की ज़रूरत पड़ सकती है होस्टनेम या एक से ज़्यादा होस्टनेम.
एचटीटीपीएस पर रीडायरेक्ट किया जा रहा है एक ही होस्टनेम पर
नीचे दिए गए कोड को अपनी sites/default/settings.local.php (क्लाउड) में या 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; } }