यह ट्यूटोरियल आपको keytool और Elytron सुरक्षा सबसिस्टम का उपयोग करके JBoss EAP और WildFly पर SSL सर्टिफिकेट कैसे इंस्टॉल करें दिखाता है। यदि आपके पास अभी तक आपकी सर्टिफिकेट फ़ाइलें नहीं हैं, तो पहला सेक्शन CSR जनरेट करने को कवर करता है।
वर्शन पर ध्यान दें: आधुनिक JBoss EAP (7.1 और उसके बाद, EAP 8 सहित) और हाल की WildFly रिलीज़ Undertow के https-listener से जुड़े elytron सबसिस्टम के माध्यम से HTTPS कॉन्फ़िगर करती हैं। पुरानी security-realm पद्धति और लीगेसी Tomcat या Jetty कनेक्टर्स को अब उपयोग से हटाया जा चुका है, इसलिए यह गाइड मौजूदा तरीके का उपयोग करती है।
हमने पूरी प्रक्रिया समझाने वाला एक वीडियो भी रिकॉर्ड किया है। आप वीडियो देख सकते हैं, निर्देश पढ़ सकते हैं, या दोनों कर सकते हैं। आप नीचे वीडियो देख सकते हैं।
JBoss पर एक CSR कोड जनरेट करें
CSR (सर्टिफिकेट साइनिंग रिक्वेस्ट) एन्कोडेड टेक्स्ट का एक ब्लॉक है जो आप सर्टिफिकेट ऑर्डर करते समय सर्टिफिकेट अथॉरिटी (CA) को भेजते हैं। इसमें आपके डोमेन और संगठन का विवरण होता है, जिसका उपयोग CA रिक्वेस्ट को सत्यापित करने के लिए करता है। CSR जनरेट करने से मिलती-जुलती प्राइवेट की भी बनती है, जो आपके सर्वर पर रहती है और इंस्टॉलेशन के दौरान आवश्यक होती है।
आपके पास दो विकल्प हैं:
- CSR को स्वचालित रूप से बनाने के लिए हमारे CSR Generator का उपयोग करें।
- JBoss पर CSR कैसे जनरेट करें पर हमारे स्टेप-बाय-स्टेप ट्यूटोरियल का पालन करें।
JBoss पर CSR को .jks या .p12 कीस्टोर से keytool के साथ जनरेट किया जाता है। अभी आपके द्वारा चुने गए alias और keystore नाम को नोट कर लें: बाद में आप साइन किए गए सर्टिफिकेट को उसी exact alias में इम्पोर्ट करेंगे। ऑर्डर करते समय CA को CSR सबमिट करें, और सर्टिफिकेट जारी होने के बाद, नीचे दिए गए इंस्टॉलेशन के साथ जारी रखें।
JBoss सर्वर पर SSL सर्टिफिकेट इंस्टॉल करें
चरण 1: अपनी सर्टिफिकेट फ़ाइलें तैयार करें
सत्यापन के बाद, CA आपको ईमेल द्वारा आपकी सर्टिफिकेट फ़ाइलें भेजता है, आमतौर पर एक ZIP आर्काइव में। इसे एक्सट्रैक्ट करें। आपके पास होना चाहिए:
- आपका प्राइमरी सर्टिफिकेट (एक .crt, .cer, या .pem फ़ाइल)।
- इंटरमीडिएट सर्टिफिकेट्स, जो अक्सर .ca-bundle फ़ाइल (CA बंडल) के रूप में डिलिवर किए जाते हैं। कुछ CA रूट को भी शामिल करते हैं।
- वह कीस्टोर (.jks या .p12) जो आपने CSR के साथ बनाया था, जिसमें CSR जनरेट करते समय चुने गए alias के अंतर्गत आपकी प्राइवेट की होती है।
इन फ़ाइलों को एक साथ रखें, और उन्हें सर्वर पर कॉपी करें, उदाहरण के लिए JBoss कॉन्फ़िगरेशन डायरेक्टरी ($JBOSS_HOME/standalone/configuration/) में। यदि कोई फ़ाइल टेक्स्ट के रूप में खुलती है, तो आप पुष्टि कर सकते हैं कि इसमें अपेक्षित BEGIN CERTIFICATE और END CERTIFICATE पंक्तियां हैं।
चरण 2: CA चेन को कीस्टोर में इम्पोर्ट करें
पहले इंटरमीडिएट (और रूट, यदि प्रदान किया गया है) सर्टिफिकेट्स को इम्पोर्ट करें ताकि keytool ट्रस्ट की एक संपूर्ण चेन बना सके। उस same keystore का उपयोग करें जो आपकी प्राइवेट की रखता है, और प्रत्येक CA सर्टिफिकेट को अपना खुद का alias दें:
keytool -import -trustcacerts -alias root -file root.crt -keystore your_keystore.jks
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore your_keystore.jks
यदि आपके CA ने एक सिंगल .ca-bundle फ़ाइल भेजी है, तो इसे एक alias (उदाहरण के लिए -alias intermediate) के अंतर्गत इम्पोर्ट करें। प्रॉम्प्ट किए जाने पर, कीस्टोर पासवर्ड दर्ज करें और ट्रस्ट की पुष्टि करें। ये एंट्रीज़ ट्रस्टेड-सर्टिफिकेट एंट्रीज़ हैं, की एंट्रीज़ नहीं, इसलिए वे आपकी प्राइवेट की को प्रभावित नहीं करती हैं।
चरण 3: साइन किए गए सर्टिफिकेट को अपने की alias में इम्पोर्ट करें
अब अपने साइन किए गए सर्टिफिकेट (CA से मिला रिप्लाई) को उस exact alias में इम्पोर्ट करें जिसका उपयोग आपने CSR जनरेट करते समय किया था। चूंकि वह alias पहले से ही प्राइवेट की रखता है, keytool इसे एक सर्टिफिकेट रिप्लाई के रूप में मानता है और अस्थायी सेल्फ-साइन सर्टिफिकेट को CA-साइन की गई चेन से बदल देता है, जबकि की को बरकरार रखता है:
keytool -import -trustcacerts -alias your_csr_alias -file your_domain.crt -keystore your_keystore.jks
your_csr_alias को उस alias से बदलें जिसका आपने CSR जनरेट करते समय उपयोग किया था और your_keystore.jks को अपनी कीस्टोर से। सफल होने पर keytool Certificate reply was installed in keystore प्रिंट करता है।
महत्वपूर्ण: यहां नया alias न बनाएं। रिप्लाई को नए alias के अंतर्गत इम्पोर्ट करने से एक ट्रस्टेड-सर्टिफिकेट एंट्री बनती है जिसमें कोई प्राइवेट की नहीं होती, चेन खो जाती है, और सर्वर TLS हैंडशेक पूरा नहीं कर पाता। यदि आपको Failed to establish chain from reply दिखाई देता है, तो इसका मतलब है कि चरण 2 का इंटरमीडिएट या रूट कीस्टोर में मौजूद नहीं है।
आप परिणाम सत्यापित कर सकते हैं, alias को अब 1 से अधिक लंबाई की एक सर्टिफिकेट चेन दिखाना चाहिए:
keytool -list -v -alias your_csr_alias -keystore your_keystore.jks
चरण 4: Elytron सबसिस्टम में HTTPS कॉन्फ़िगर करें
कीस्टोर को $JBOSS_HOME/standalone/configuration/ में रखें, फिर एक Elytron key-store, key-manager, और server-ssl-context डिफ़ाइन करें। सबसे तेज़ तरीका है मैनेजमेंट CLI। सर्वर शुरू करें, jboss-cli.sh --connect से कनेक्ट करें, और एक साथ लागू करने के लिए एक बैच चलाएं:
batch
/subsystem=elytron/key-store=httpsKS:add(path=your_keystore.jks, relative-to=jboss.server.config.dir, credential-reference={clear-text=your_keystore_password}, type=JKS)
/subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS, credential-reference={clear-text=your_keystore_password})
/subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM, protocols=["TLSv1.3","TLSv1.2"])
run-batch
इसके बाद, Undertow के https-listener को नए ssl-context की ओर पॉइंट करें। Undertow एक ही समय में लीगेसी security-realm और Elytron ssl-context को संदर्भित नहीं कर सकता, इसलिए पुराने संदर्भ को हटाएं और एक ही बैच में नया सेट करें:
batch
/subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC)
run-batch
यदि आप सीधे standalone.xml को एडिट करना पसंद करते हैं (सर्वर बंद होने के साथ), तो elytron सबसिस्टम के अंदर संबंधित कॉन्फ़िगरेशन कुछ इस प्रकार दिखता है:
<tls>
<key-stores>
<key-store name="httpsKS">
<credential-reference clear-text="your_keystore_password"/>
<implementation type="JKS"/>
<file path="your_keystore.jks" relative-to="jboss.server.config.dir"/>
</key-store>
</key-stores>
<key-managers>
<key-manager name="httpsKM" key-store="httpsKS">
<credential-reference clear-text="your_keystore_password"/>
</key-manager>
</key-managers>
<server-ssl-contexts>
<server-ssl-context name="httpsSSC" key-manager="httpsKM" protocols="TLSv1.3 TLSv1.2"/>
</server-ssl-contexts>
</tls>
और undertow सबसिस्टम में मैचिंग लिस्नर उस ssl-context को संदर्भित करता है:
<https-listener name="https" socket-binding="https" ssl-context="httpsSSC" enable-http2="true"/>
protocols को TLS 1.3 और TLS 1.2 तक सीमित करने से पुराने TLS 1.0 और 1.1 डिसेबल हो जाते हैं। डिफ़ॉल्ट HTTPS पोर्ट 8443 है; यदि आपको स्टैंडर्ड पोर्ट की आवश्यकता है, तो इसे लोड बैलेंसर या पोर्ट रीडायरेक्ट के साथ 443 पर मैप करें।
चरण 5: JBoss को रीस्टार्ट करें
यदि आपने standalone.xml को हाथ से एडिट किया है, तो सर्वर को रीस्टार्ट करें ताकि यह नए कॉन्फ़िगरेशन को लोड करे। यदि आपने ऊपर दिए गए CLI बैच का उपयोग किया है, तो परिवर्तन तुरंत लागू हो जाते हैं, लेकिन एक रीलोड एक क्लीन स्टार्टअप की पुष्टि करता है:
jboss-cli.sh --connect --command=:reload
स्टार्टअप के दौरान SSL या Elytron एरर के लिए सर्वर लॉग देखें। एक बार यह क्लीनली बूट हो जाए, तो आपका SSL सर्टिफिकेट JBoss पर इंस्टॉल हो जाता है।
अपने SSL इंस्टॉलेशन का परीक्षण करें
इंस्टॉलेशन के बाद, पुष्टि करें कि सर्टिफिकेट और चेन सही तरीके से सर्व की जा रही हैं। अपनी साइट को HTTPS पर खोलें (उदाहरण के लिए https://www.yourdomain.com:8443) और पैडलॉक देखें, या सर्टिफिकेट, चेन, और प्रोटोकॉल सपोर्ट पर एक पूर्ण रिपोर्ट के लिए हमारे SSL Checker के साथ एक एक्सटर्नल स्कैन चलाएं। आप कमांड लाइन से भी चेक कर सकते हैं:
echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
यह उस सर्टिफिकेट के इशूअर और वैधता तिथियों को प्रिंट करता है जो JBoss सर्व कर रहा है। यदि इशूअर आपका CA है (सेल्फ-साइन एंट्री नहीं), तो रिप्लाई सही तरीके से इम्पोर्ट हुआ है।
अक्सर पूछे जाने वाले प्रश्न
HTTPS पोर्ट से OpenSSL के साथ कनेक्ट करें और सर्वर द्वारा लौटाए गए सर्टिफिकेट को पढ़ें:echo | openssl s_client -connect yourdomain.com:8443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
यदि कोई सर्टिफिकेट इंस्टॉल है, तो यह इसके इशूअर, सब्जेक्ट, और वैधता तिथियों को प्रिंट करता है। आप keytool -list -v -keystore your_keystore.jks के साथ कीस्टोर का निरीक्षण भी कर सकते हैं, या ब्राउज़र में अपनी साइट खोलकर पैडलॉक देख सकते हैं।
सर्टिफिकेट एक कीस्टोर के अंदर रहता है, और कीस्टोर को Elytron key-store द्वारा संदर्भित किया जाता है। एक सामान्य स्थान है सर्वर कॉन्फ़िगरेशन डायरेक्टरी, $JBOSS_HOME/standalone/configuration/, जिसमें Elytron key-store पथ को relative-to jboss.server.config.dir सेट किया गया है। आप इसे कहीं और भी स्टोर कर सकते हैं जब तक कि key-store पथ इसे पॉइंट करता है।
keytool आपके सर्टिफिकेट से एक ट्रस्टेड रूट तक का पथ नहीं बना सका। पहले इंटरमीडिएट (और रूट, यदि प्रदान किया गया है) सर्टिफिकेट्स को -trustcacerts के साथ उसी कीस्टोर में इम्पोर्ट करें, फिर साइन किए गए रिप्लाई को अपने CSR alias में इम्पोर्ट करें। यदि आपने रिप्लाई को एक बिल्कुल नए alias के अंतर्गत इम्पोर्ट किया है, तो प्राइवेट की खो जाती है: उस एंट्री को डिलीट करें और इसके बजाय ओरिजिनल की alias में फिर से इम्पोर्ट करें।
Run keytool -list -v -keystore your_keystore.jks चलाएं और अपने alias के लिए Valid from लाइन पढ़ें, या ऊपर दिए गए OpenSSL कमांड का उपयोग करें यह देखने के लिए कि लाइव सर्वर कौन सी तिथियां रिपोर्ट करता है। CA/Browser Forum नियमों के अंतर्गत पब्लिक TLS सर्टिफिकेट की लाइफटाइम घट रही है: 15 मार्च, 2026 से अधिकतम 200 दिन है, जो 2027 में 100 दिन और 2029 में 47 दिन हो जाएगी। रिन्यूअल तिथियों को ट्रैक करें और एक्सपायरी से पहले रिन्यू करें, या जहां आपका CA सपोर्ट करता है वहां इशूअंस को ऑटोमेट करें।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


