इस ट्यूटोरियल में, आप जानेंगे कि Java keytool यूटिलिटी का उपयोग करके Apache Tomcat पर SSL सर्टिफिकेट कैसे इंस्टॉल करें, और फिर server.xml में HTTPS कनेक्टर को कॉन्फ़िगर करें। यदि आपने अभी तक अपना CSR जनरेट नहीं किया है, तो पहला सेक्शन आपको यह दिखाता है कि कैसे करें।
हमने एक वीडियो भी रिकॉर्ड किया है जो आपको पूरी प्रक्रिया के बारे में बताता है। आप वीडियो देख सकते हैं, निर्देश पढ़ सकते हैं, या दोनों कर सकते हैं। आप नीचे वीडियो देख सकते हैं।
Tomcat के लिए CSR कोड जनरेट करें
CSR का अर्थ है सर्टिफिकेट साइनिंग रिक्वेस्ट, टेक्स्ट का एक ब्लॉक जिसमें आपके डोमेन और संगठन के बारे में वर्तमान विवरण शामिल होते हैं। किसी भी कमर्शियल SSL सर्टिफिकेट के खरीदार को वैलिडेशन पास करने और सर्टिफिकेट प्राप्त करने के लिए सर्टिफिकेट अथॉरिटी (SSL प्रोवाइडर) को CSR सबमिट करना होता है। यदि CSR में गलत विवरण हैं, तो CA उस पर साइन नहीं करेगा।
Tomcat पर, CSR को Java keystore से keytool के साथ बनाया जाता है, और उस same keystore में प्राइवेट की होती है जिसे आप इंस्टॉलेशन के दौरान फिर से उपयोग करेंगे। आपके पास दो विकल्प हैं:
- CSR को स्वचालित रूप से बनाने के लिए हमारे CSR Generator का उपयोग करें।
- Tomcat पर CSR कैसे जनरेट करें पर हमारे स्टेप-बाय-स्टेप ट्यूटोरियल का पालन करें।
महत्वपूर्ण: CSR जनरेट करते समय आपने जिस keystore फ़ाइल और alias का उपयोग किया था, उसका ध्यान रखें। बाद में आप अपने साइन किए हुए सर्टिफिकेट को उसी exact alias में इम्पोर्ट करेंगे, क्योंकि वहीं मैचिंग प्राइवेट की मौजूद होती है।
सर्टिफिकेट अथॉरिटी द्वारा आपके रिक्वेस्ट को वैलिडेट करने और आपको SSL फ़ाइलें भेजने के बाद, नीचे दिए गए इंस्टॉलेशन के साथ आगे बढ़ें।
Tomcat में SSL सर्टिफिकेट इंस्टॉल करें
Tomcat इंस्टॉलेशन में दो चरण होते हैं: पहले आप सर्टिफिकेट चेन और अपने साइन किए हुए सर्टिफिकेट को उस keystore में इम्पोर्ट करते हैं जिसमें पहले से आपकी प्राइवेट की मौजूद है, फिर आप उस keystore का उपयोग करने के लिए server.xml में HTTPS कनेक्टर को कॉन्फ़िगर करते हैं।
चरण 1: अपनी SSL सर्टिफिकेट फ़ाइलें तैयार करें
आपकी सर्टिफिकेट अथॉरिटी आपके द्वारा प्रदान किए गए एड्रेस पर फ़ाइलें ईमेल करती है, जो अक्सर एक ZIP आर्काइव के रूप में होती हैं। इसे एक्सट्रेक्ट करें। CA के आधार पर, फ़ाइलें दो फॉर्मेट में से किसी एक में आती हैं:
- PKCS#7: एक single .p7b (या .cer) फ़ाइल जिसमें पहले से आपके सर्टिफिकेट के साथ रूट और इंटरमीडिएट सर्टिफिकेट भी बंडल होते हैं।
- PEM: अलग-अलग फ़ाइलें, आम तौर पर आपके सर्वर सर्टिफिकेट के लिए एक .crt फ़ाइल के साथ अलग root.crt और intermediate.crt फ़ाइलें।
एक्सट्रैक्ट की गई फ़ाइलों को सर्वर पर उस ही डायरेक्टरी में अपलोड करें जहाँ वह keystore है जिससे आपने अपना CSR जनरेट किया था (नीचे इसे example.jks के रूप में संदर्भित किया गया है)। अपना फॉर्मेट पहचानें और मैचिंग निर्देशों का पालन करें।
क्या आपने CSR किसी और जगह जनरेट किया था, जिसकी वजह से आपकी प्राइवेट की example.jks में एंट्री होने के बजाय एक separate फ़ाइल है? keytool को छोड़ दें: सर्टिफिकेट, चेन और की को एक .p12 में बंडल करने के लिए PEM को PKCS#12 में कन्वर्ट करें, फिर चरण 3 में उस फ़ाइल को certificateKeystoreType=”PKCS12″ के साथ संदर्भित करें।
चरण 2: सर्टिफिकेट को अपने keystore में इम्पोर्ट करें
PKCS#7 फॉर्मेट। चूंकि .p7b में पहले से पूरी चेन शामिल होती है, एक single कमांड सब कुछ एक साथ इम्पोर्ट कर देती है, आपके मौजूदा प्राइवेट-की alias में:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.p7b
ssldragon को अपने खुद के alias से बदलें और example को अपनी फ़ाइल नामों से। alias वही होना चाहिए जो पहले से आपकी प्राइवेट की रखता है (CSR चरण से alias)। जब आप Certificate reply was installed in keystore मेसेज देखें, तो इम्पोर्ट सफल हो गया। keystore की कंटेंट को इसके साथ वेरिफाई करें:
keytool -list -v -keystore example.jks
एक ऐसी एंट्री देखें जिसका type PrivateKeyEntry हो और जिसकी सर्टिफिकेट चेन लंबाई 1 से अधिक हो। यह पुष्टि करता है कि साइन किया हुआ सर्टिफिकेट अब आपकी प्राइवेट की से जुड़ा हुआ है।
PEM फॉर्मेट। सर्टिफिकेट्स को अलग-अलग, चेन क्रम में इम्पोर्ट करें: पहले रूट, फिर कोई भी इंटरमीडिएट, और सबसे अंत में आपका डोमेन सर्टिफिकेट। चेन को पहले इम्पोर्ट करने से keytool को की के साथ reply attach करने से पहले एक पूर्ण ट्रस्ट पथ बनाने की सुविधा मिलती है। रूट सर्टिफिकेट इम्पोर्ट करें:
keytool -import -trustcacerts -alias root -keystore example.jks -file root.crt
फिर इंटरमीडिएट सर्टिफिकेट इम्पोर्ट करें:
keytool -import -trustcacerts -alias intermediate -keystore example.jks -file intermediate.crt
यदि आपका CA कई इंटरमीडिएट सर्टिफिकेट्स प्रदान करता है, तो हर एक को उसके अपने trusted alias के तहत इम्पोर्ट करें, उस क्रम का पालन करते हुए जिसमें वे एक-दूसरे पर साइन करते हैं (रूट से आपके डोमेन सर्टिफिकेट की ओर)। उदाहरण के लिए, एक Sectigo Sectigo PositiveSSL सर्टिफिकेट एक से अधिक इंटरमीडिएट के साथ आता है, इसलिए उन्हें डोमेन सर्टिफिकेट से पहले क्रम में इम्पोर्ट करें।
अंत में, अपने प्राइमरी सर्टिफिकेट (जो आपके डोमेन के लिए जारी किया गया है) को मौजूदा प्राइवेट-की alias में इम्पोर्ट करें, वही alias जिसका उपयोग आपने CSR जनरेट करते समय किया था:
keytool -import -trustcacerts -alias ssldragon -keystore example.jks -file example.crt
यहाँ, ssldragon आपका मौजूदा प्राइवेट-की alias होना चाहिए। क्योंकि उस alias में पहले से एक की मौजूद है, keytool इस इम्पोर्ट को एक सर्टिफिकेट reply मानता है और साइन किए हुए सर्टिफिकेट को की से बांध देता है। यह वह चरण है जो HTTPS को काम करने योग्य बनाता है।
महत्वपूर्ण चूक: साइन किए हुए सर्टिफिकेट को एक बिलकुल नए alias के तहत इम्पोर्ट न करें। यदि alias में कोई मौजूदा प्राइवेट की नहीं है, तो keytool सर्टिफिकेट को एक स्टैंडअलोन trusted एंट्री के रूप में स्टोर करेगा जिसमें कोई की अटैच नहीं होती, और TLS फेल हो जाएगा। यदि आपको यह पता नहीं है कि आपकी की किस alias में है, तो keytool -list -v -keystore example.jks रन करें और उस alias का उपयोग करें जिसका type PrivateKeyEntry है।
चरण 3: server.xml में HTTPS कनेक्टर कॉन्फ़िगर करें
अब जब सर्टिफिकेट आपके keystore में है, Tomcat के HTTPS कनेक्टर को उसकी ओर पॉइंट करें। कनेक्टर server.xml में डिफाइन होता है, जो आपके Tomcat इंस्टॉलेशन के conf फोल्डर में स्थित है (उदाहरण के लिए $CATALINA_HOME/conf/server.xml)। फ़ाइल को एक टेक्स्ट एडिटर में खोलें।
वर्तमान Tomcat वर्ज़न (9, 10, और 11) पर, अनुशंसित फॉर्म में एक SSLHostConfig एलिमेंट नेस्टेड होता है, जिसमें बदले में एक Certificate एलिमेंट होता है जो आपके keystore को संदर्भित करता है। सुरक्षित कनेक्टर को इस तरह जोड़ें या अपडेट करें:
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
secure="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/your_path/example.jks"
certificateKeystorePassword="your_keystore_password"
certificateKeystoreType="JKS"
certificateKeyAlias="ssldragon"
type="RSA" />
</SSLHostConfig>
</Connector>
- certificateKeystoreFile: आपकी keystore फ़ाइल का पूरा पथ।
- certificateKeystorePassword: keystore पासवर्ड।
- certificateKeystoreType: .jks keystore के लिए JKS, या .p12 / .pfx keystore के लिए PKCS12।
- certificateKeyAlias: वह alias जो आपकी प्राइवेट की और साइन किए हुए सर्टिफिकेट को रखता है (यहाँ, ssldragon)। यह Tomcat को बताता है कि जब keystore में एक से अधिक एंट्री हों तो कौन सी सर्व करनी है।
नोट: पोर्ट 443 ऊपर उपयोग किया गया स्टैंडर्ड HTTPS पोर्ट है; Tomcat के अपने उदाहरण डिफ़ॉल्ट रूप से 8443 उपयोग करते हैं, इसलिए जो आपके एनवायरनमेंट में आवश्यक हो उसका उपयोग करें। यदि यह आपकी पहली HTTPS सेटअप है, तो सुरक्षित कनेक्टर server.xml में कमेंट किया गया हो सकता है। कनेक्टर को एक्टिव बनाने के लिए आसपास के कमेंट मार्कर्स हटाएं, और सुनिश्चित करें कि कोई अन्य कनेक्टर पहले से ही उसी पोर्ट से बंध नहीं है।
लीगेसी फॉर्म (पुराना Tomcat)। पुरानी गाइड्स keystore डिटेल्स को सीधे कनेक्टर पर keystoreFile और keystorePass एट्रीब्यूट्स के रूप में रखती हैं। वह स्टाइल ऊपर दिखाए गए SSLHostConfig और Certificate एलिमेंट्स द्वारा सुपरसीड कर दी गई है, जो सपोर्टेड Tomcat रिलीज़ पर उपयोग करने योग्य फॉर्म है।
चरण 4: server.xml सेव करें और Tomcat को रीस्टार्ट करें
server.xml सेव करें, फिर Tomcat को रीस्टार्ट करें ताकि यह कॉन्फ़िगरेशन को फिर से लोड करे। Linux पर, बंडल की गई स्क्रिप्ट्स का उपयोग करें:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
यदि Tomcat एक सर्विस के रूप में चलता है, तो इसे अपने सर्विस मैनेजर के माध्यम से रीस्टार्ट करें (उदाहरण के लिए Linux पर systemctl restart tomcat, या Windows पर Services पैनल)। बधाई हो, अब आपका SSL सर्टिफिकेट आपके Tomcat सर्वर पर इंस्टॉल हो गया है।
अपने Tomcat SSL इंस्टॉलेशन का परीक्षण करें
सर्टिफिकेट इंस्टॉल करने के बाद, छोटी गलतियाँ बिना ध्यान गए हो सकती हैं और इससे यह प्रभावित हो सकता है कि ब्राउज़र आपकी साइट के साथ कैसे व्यवहार करते हैं। इंस्टॉलेशन की जांच करने की आदत बनाएं। मिसिंग इंटरमीडिएट सर्टिफिकेट या untrusted चेन जैसी समस्याओं को उजागर करने वाले तुरंत स्कैन के लिए हमारे SSL Checker को चलाएं।
अक्सर पूछे जाने वाले प्रश्न
सामान्य कारण यह है कि साइन किए हुए सर्टिफिकेट को उस alias के बजाय एक नए alias के तहत इम्पोर्ट किया जाता है जो पहले से आपकी प्राइवेट की रखता है। फिर keytool इसे बिना की के एक trusted सर्टिफिकेट एंट्री के रूप में स्टोर करता है, इसलिए Tomcat TLS हैंडशेक पूरा नहीं कर सकता। साइन की हुई reply को मौजूदा प्राइवेट-की alias (आपके CSR वाले) में फिर से इम्पोर्ट करें। यह पुष्टि करने के लिए keytool -list -v -keystore example.jks रन करें और जांचें कि alias एक PrivateKeyEntry के रूप में दिखाई देता है जिसकी चेन एक सर्टिफिकेट से लंबी है।
चेन को पहले इम्पोर्ट करें। रूट और किसी भी इंटरमीडिएट सर्टिफिकेट्स को क्रम में trusted एंट्री के रूप में जोड़ें, फिर अपने डोमेन सर्टिफिकेट को अंत में प्राइवेट-की alias में इम्पोर्ट करें। यह keytool को की के साथ reply attach करने से पहले एक पूर्ण ट्रस्ट पथ बनाने देता है। PKCS#7 (.p7b) फ़ाइल के साथ चेन पहले से ही बंडल होती है, इसलिए एक single इम्पोर्ट सब कुछ हैंडल कर देता है।
HTTPS कनेक्टर server.xml में डिफाइन होता है, जो आपके Tomcat इंस्टॉलेशन के conf डायरेक्टरी में होता है (उदाहरण के लिए $CATALINA_HOME/conf/server.xml)। वर्तमान Tomcat वर्ज़न पर, keystore को कनेक्टर पर सीधे रखने के बजाय एक नेस्टेड SSLHostConfig और Certificate एलिमेंट के माध्यम से संदर्भित किया जाता है।
हाँ। Tomcat दोनों को सपोर्ट करता है। .p12 या .pfx keystore के लिए certificateKeystoreType को PKCS12 पर सेट करें, या .jks keystore के लिए JKS पर, और certificateKeystoreFile को मैचिंग फ़ाइल की ओर पॉइंट करें। PKCS12 स्टैंडर्ड, पोर्टेबल keystore फॉर्मेट है, इसलिए यह नए keystores के लिए एक अच्छा डिफ़ॉल्ट है।
Tomcat का सैंपल कॉन्फ़िगरेशन सुरक्षित कनेक्टर के लिए पोर्ट 8443 उपयोग करता है। ब्राउज़र द्वारा डिफ़ॉल्ट रूप से उपयोग किए जाने वाले स्टैंडर्ड पोर्ट पर HTTPS सर्व करने के लिए, कनेक्टर port को 443 पर सेट करें और सुनिश्चित करें कि कोई अन्य कनेक्टर या सर्विस पहले से इसका उपयोग नहीं कर रही है।
बंडल की गई स्क्रिप्ट्स $CATALINA_HOME/bin/shutdown.sh के बाद $CATALINA_HOME/bin/startup.sh रन करें, या अपने सर्विस मैनेजर के माध्यम से Tomcat सर्विस को रीस्टार्ट करें (उदाहरण के लिए Linux पर systemctl restart tomcat, या Windows पर Services पैनल)। server.xml में बदलाव प्रभावी होने के लिए रीस्टार्ट आवश्यक है।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


