में एक कस्टम कुंजी स्टोर लोड करना मैं URLFetch सेवा का उपयोग कर Google App Engine ऐप में HTTPS कनेक्शन खोलना चाहता हूं। सर्वर के SSL प्रमाण पत्र को सत्यापित करने के लिए सक्षम करने के लिए मेरा ऐप बात कर रहा है, मैं अपनी खुद की कीस्टोर फ़ाइल का उपयोग कर रहा हूं। जब भी मेरा ऐप लोड हो जाता है, तो मैं इस फ़ाइल को warmup request में पढ़ना चाहता हूं यानी किसी भी HTTPS अनुरोधों से पहले। कीस्टोर फ़ाइल मेरी WAR फ़ाइल का हिस्सा है।Google App Engine Java अनुप्रयोग
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(ClassLoader.getSystemResourceAsStream("myKeystoreFile"), "password".toCharArray());
trustManagerFactory.init(keystore);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustManagers, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
मैं इस दृष्टिकोण का उपयोग नहीं कर सकते हैं, तथापि, क्योंकि जबकि HttpURLConnection GAE के JRE श्वेत सूची पर है, HttpsURLConnection नहीं है।
क्या GAE में कस्टम कीस्टोर का उपयोग करने का कोई और तरीका है? मुझे GAE दस्तावेज़ों में इस पर कोई जानकारी नहीं मिली। ऐसा लगता है कि Google की URLFetch सेवा HTTPS का समर्थन करती है, तो कीस्टोर को अनुकूलित नहीं किया जा सकता है। क्या यह सही है?
यदि यह संभव नहीं है, तो क्या दृष्टिकोण सामान्य रूप से मान्य है? या क्या कोई अलग दृष्टिकोण है जो अभी भी मुझे SSL प्रमाणपत्र सत्यापित करने की अनुमति देता है?
अद्यतन
2009 में, गूगल से App इंजन डेवलपर निक जॉनसन https://groups.google.com/d/topic/google-appengine-python/C9RSDGeIraE/discussion पर कहा:
UrlFetch एपीआई आप अपने खुद के ग्राहक प्रमाण पत्र निर्दिष्ट करने के लिए अनुमति नहीं है, इसलिए दुर्भाग्यवश जो आप प्राप्त करना चाहते हैं वह वर्तमान में संभव नहीं है।
क्या यह अभी भी सही है? यदि ऐप इंजन में प्रत्येक HTTP अनुरोध अनुरोध URL पर निर्भर करता है तो इसका अर्थ यह होगा कि कस्टम प्रमाण पत्र का उपयोग GAE में बिल्कुल भी नहीं किया जा सकता है।
जैसा कि यह पता चला है कि [GAE की Google Code साइट] (http://code.google.com/p/googleappengine/issues/detail?id=3719) पर इसके लिए एक खुली समस्या है। – Ingo
ऐप इंजन पर इसका समर्थन करने के लिए क्या आवश्यक होगा? ** क्या Google के किसी व्यक्ति ने इसे लागू करने के लिए क्या करना होगा? ** – Ingo
लेविटीस का कहना है कि उसने अपाचे HTTP क्लाइंट का उपयोग करके इसे कार्यान्वित किया है, http://esxx.blogspot.com/2009/06/using-apaches- httpclient-ऑन-google-app.html। मैं अभी भी अपने दृष्टिकोण को समझने की कोशिश कर रहा हूं। क्या किसी ने यह कोशिश की? उन्होंने स्रोत को यहां विचलन में डाल दिया: http://svn.berlios.de/svnroot/repos/esxx/trunk/jee/org/esxx/js/protocol – Ingo