यदि आपके द्वारा बनाए गए एक नए दायरे के कारण आपको यह त्रुटि हो रही है
उस URL में जिसे आप रीडायरेक्ट किया गया है (आपको इस URL के लिए Chrome देव टूल में देखना पड़ सकता है), master
आपके द्वारा अभी बनाए गए से दायरे को बदलें , और यदि आप उपयोग नहीं कर रहे हैं https
, तो सुनिश्चित करें कि रीडायरेक्ट_यूरी भी उपयोग कर रहा हैhttp
।
यदि आपको यह त्रुटि मिल रही है क्योंकि आप Keycloak को किसी सार्वजनिक सामना करने वाले डोमेन (लोकलहोस्ट नहीं) पर सेट करने का प्रयास कर रहे हैं
चरण 1) MySql डेटाबेस सेटअप करने के लिए इस दस्तावेज़ का
पालन करें । आपको आधिकारिक दस्तावेज को संदर्भित करने की भी आवश्यकता हो सकती है ।
चरण 2)
कमांड चलाएंupdate REALM set ssl_required = 'NONE' where id = 'master';
ध्यान दें:
इस बिंदु पर, आपको तकनीकी रूप से लॉगिन करने में सक्षम होना चाहिए, लेकिन Keycloak का संस्करण 4.0 भले ही हम https समर्थन बंद कर दिया हो, भले ही रीडायरेक्ट uri के लिए https का उपयोग कर रहा हो। जब तक कीक्लोक इसे ठीक नहीं करता, तब तक हम रिवर्स प्रॉक्सी के साथ इसे प्राप्त कर सकते हैं। रिवर्स प्रॉक्सी वह चीज है जिसका उपयोग हम जावा कीस्टोर्स के बारे में चिंता किए बिना आसानी से एसएसएल / टीएलएस प्रमाणपत्र बनाने के लिए किसी भी तरह से करना चाहेंगे।
नोट 2: कीक्लॉक तब से अपनी खुद की प्रॉक्सी लेकर आया है। मैंने अभी तक इसकी कोशिश नहीं की है, लेकिन इस बिंदु पर, आप मेरे निर्देशों का पालन करना बंद कर सकते हैं और चेक आउट कर सकते हैं (कीकोलोक गेटकीपर) [ https://www.keycloak.org/downloads.html] । यदि आपको Keycloak Gatekeeper स्थापित करने में समस्या है, तो मैं अपाचे के साथ एक रिवर्स प्रॉक्सी सेट करने के लिए अपने निर्देश चारों ओर रखूंगा।
चरण 3) अपाचे स्थापित करें। हम अपाचे को रिवर्स प्रॉक्सी के रूप में उपयोग करेंगे (मैंने एनजीआईएनएक्स की कोशिश की, लेकिन एनजीआईएनएक्स की कुछ सीमाएं थीं जो रास्ते में मिलीं)। अपाचे (सेंटो 7) स्थापित करते हुए यम देखें , और एपाचे (उबंटू 16) स्थापित करें , या अपने मोबाइल डिस्ट्रो के लिए निर्देश ढूंढें।
चरण 4) अपाचे चलाएँ
का प्रयोग करें sudo systemctl start httpd
(CentOs) या sudo systemctl start apache2
(Ubuntu)
का प्रयोग करें sudo systemctl status httpd
(CentOS) या sudo systemctl status apache2
अगर अपाचे चल रहा है (Ubuntu) की जाँच करने के। यदि आप हरे रंग के पाठ में शब्दों को देखते हैं active (running)
या यदि अंतिम प्रविष्टि पढ़ते हैं Started The Apache HTTP Server.
तो आप अच्छे हैं।
चरण 5) हम रिवर्स प्रॉक्सी के साथ एक एसएसएल कनेक्शन स्थापित करेंगे, और फिर रिवर्स प्रॉक्सी http पर की-क्लोक से संवाद करेगा। क्योंकि यह http संचार एक ही मशीन पर हो रहा है, आप अभी भी सुरक्षित हैं। हम स्वतः-नवीनीकरण प्रमाणपत्र सेट करने के लिए सर्बोट का उपयोग कर सकते हैं ।
यदि इस प्रकार का एन्क्रिप्शन पर्याप्त अच्छा नहीं है, और आपकी सुरक्षा नीति के लिए एंड-टू-एंड एन्क्रिप्शन की आवश्यकता होती है, तो आपको रिवर्स प्रॉक्सी का उपयोग करने के बजाय, SSL को WildFly के माध्यम से सेटअप करने का तरीका पता लगाना होगा ।
नोट:
मैं वास्तव में व्यवस्थापक पोर्टल के साथ ठीक से काम करने के लिए https पाने में सक्षम नहीं था। शायद यह सिर्फ Keycloak 4.0 के बीटा संस्करण में एक बग हो सकता है जिसका मैं उपयोग कर रहा हूं। आपको लगता है कि SSL स्तर को केवल बाहरी अनुरोधों के लिए निर्धारित करने में सक्षम होना चाहिए, लेकिन यह काम नहीं करता था, यही कारण है कि हम चरण # 2 में से किसी में भी https सेट नहीं करते हैं। यहां से हम एडमिन सेटिंग्स को मैनेज करने के लिए SSH टनल के ऊपर http का उपयोग करना जारी रखेंगे।
चरण 6)
जब भी आप https के माध्यम से साइट पर जाने का प्रयास करते हैं, तो आप एक HSTS नीति को ट्रिगर करेंगे जो http के अनुरोधों को https में पुनर्निर्देशित करने के लिए ऑटो-बल देगा। Chrome से HSTS नियम को साफ़ करने के लिए इन निर्देशों का पालन करें , और फिर कुछ समय के लिए, साइट के https संस्करण पर दोबारा न जाएँ।
चरण 7)
अपाचे को कॉन्फ़िगर करें। सबसे पहले खोजें कि आपकी httpd.conf फ़ाइल कहाँ स्थित है । आपकी httpd.conf फाइल संभवत: एक अलग निर्देशिका से कॉन्फिग फाइलों को सम्मिलित करती है। मेरे मामले में, मुझे मेरे सभी कॉन्फ़िगर फ़ाइल conf.d
को httpd.conf फ़ाइल फ़ोल्डर से सटे एक निर्देशिका में मिली थी।
एक बार जब आप अपनी गोपनीय फाइलों को ढूंढ लेते हैं, तो अपनी गोपनीय फाइलों में निम्नलिखित, वर्चुअल होस्ट प्रविष्टियों को जोड़ सकते हैं, बदल सकते हैं या जोड़ सकते हैं। सुनिश्चित करें कि आप पहले से ही मौजूद एसएसएल विकल्पों को ओवरराइड नहीं करते हैं, जहां सर्टिफिकेट द्वारा उत्पन्न होता है। जब किया जाता है, तो आपकी कॉन्फ़िग फ़ाइल कुछ इस तरह दिखनी चाहिए।
<VirtualHost *:80>
RewriteEngine on
#change https redirect_uri parameters to http
RewriteCond %{request_uri}\?%{query_string} ^(.*)redirect_uri=https(.*)$
RewriteRule . %1redirect_uri=http%2 [NE,R=302]
#uncomment to force https
#does not currently work
#RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}
#forward the requests on to keycloak
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
RewriteEngine on
#Disable HSTS
Header set Strict-Transport-Security "max-age=0; includeSubDomains;" env=HTTPS
#change https redirect_uri parameters to http
RewriteCond %{request_uri}\?%{query_string} ^(.*)redirect_uri=https(.*)$
RewriteRule . %1redirect_uri=http%2 [NE,R=302]
#forward the requests on to keycloak
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
#Leave the items added by certbot alone
#There should be a ServerName option
#And a bunch of options to configure the location of the SSL cert files
#Along with an option to include an additional config file
</VirtualHost>
</IfModule>
चरण 8) अपाचे को पुनरारंभ करें। sudo systemctl restart httpd
(CentOs) या sudo systemctl restart apache2
(Ubuntu) का उपयोग करें ।
चरण 9)
इससे पहले कि आपके पास सर्वर में प्रवेश करने का प्रयास करने का मौका हो, क्योंकि हमने Keycloak को http का उपयोग करने के लिए कहा था, इसलिए हमें सुरक्षित रूप से कनेक्ट होने के दूसरे तरीके को सेटअप करने की आवश्यकता है। यह keycloak सर्वर पर एक वीपीएन सेवा स्थापित करके, या SOCKS का उपयोग करके किया जा सकता है। मैंने एक SOCKS प्रॉक्सी का उपयोग किया। ऐसा करने के लिए, आपको सबसे पहले डायनेमिक पोर्ट फ़ॉरवर्डिंग सेटअप करना होगा।
ssh -N -D 9905 user@example.com
या इसे पोटीन के माध्यम से सेट करें ।
9905 पोर्ट पर भेजे गए सभी ट्रैफ़िक को अब आपके सर्वर पर SSH सुरंग के माध्यम से सुरक्षित रूप से रूट किया जाएगा। सुनिश्चित करें कि आप अपने सर्वर के फ़ायरवॉल पर श्वेतसूची पोर्ट 9905 करें।
एक बार जब आपके पास डायनेमिक पोर्ट फ़ॉरवर्डिंग सेटअप होता है, तो आपको पोर्ट 9905 पर SOCKS प्रॉक्सी का उपयोग करने के लिए अपने ब्राउज़र को सेटअप करना होगा । यहाँ निर्देश ।
चरण 10) अब आपको Keycloak admin पोर्टल पर लॉगिन करने में सक्षम होना चाहिए। वेबसाइट से कनेक्ट करने के लिए http://127.0.0.1 पर जाएं , और SOCKS प्रॉक्सी आपको व्यवस्थापक कंसोल पर ले जाएगा। सुनिश्चित करें कि जब आप अपने सर्वर के संसाधनों का उपयोग करते हैं, तो आप SOCKS प्रॉक्सी को बंद कर देंगे, और यदि आपके पास रखे तो आपके लिए यह धीमी इंटरनेट स्पीड होगी।
चरण 11) मुझे यह मत पूछो कि मुझे यह सब पता लगाने में कितना समय लगा।