यह गाइड आपको Heroku पर SSL सर्टिफिकेट कैसे इंस्टॉल करें दिखाती है। इसमें Heroku द्वारा आज TLS को टर्मिनेट करने के दोनों तरीके शामिल हैं: ऑटोमेटेड सर्टिफिकेट मैनेजमेंट (ACM), जो आपके लिए फ्री Let’s Encrypt सर्टिफिकेट प्रोविज़न और रिन्यू करता है, और डैशबोर्ड या Heroku CLI के माध्यम से थर्ड-पार्टी सर्टिफिकेट का मैनुअल अपलोड।
शुरू करने से पहले कुछ बातें जान लें। Heroku का लेगेसी SSL Endpoint ऐड-ऑन (पेड $20/माह प्रोडक्ट) 2021 में डिप्रीकेट कर दिया गया था और अब इसे नए ऐप्स पर प्रोविज़न नहीं किया जा सकता। हर नई HTTPS डिप्लॉयमेंट Heroku SSL का उपयोग करती है, जो SNI (Server Name Indication) एक्सटेंशन पर निर्भर करता है और हर पेड डायनो टियर पर बिना किसी अतिरिक्त लागत के शामिल है। फ्री डायनो 28 नवंबर, 2022 को रिटायर कर दिए गए थे, इसलिए कस्टम डोमेन जोड़ने और HTTPS सर्व करने के लिए आपको Eco, Basic, Standard, या Performance प्लान की आवश्यकता है।
CSR जनरेट करें (मैनुअली अपलोड किए गए सर्टिफिकेट के लिए)
यदि आपने पहले ही अपना CSR जनरेट कर लिया है और अपनी सर्टिफिकेट अथॉरिटी से जारी किया गया सर्टिफिकेट प्राप्त कर लिया है, तो Heroku पर SSL सर्टिफिकेट इंस्टॉल करें पर आगे बढ़ें।
यदि आप मैनुअली अपलोड करने के लिए थर्ड-पार्टी सर्टिफिकेट खरीद रहे हैं, तो ही आपको CSR की आवश्यकता है। यदि आप ACM का उपयोग करने की योजना बना रहे हैं, तो आप इस सेक्शन को पूरी तरह छोड़ सकते हैं: ACM आपके लिए सर्टिफिकेट जारी करता है और सबमिट करने के लिए कोई CSR नहीं है।
CSR (सर्टिफिकेट साइनिंग रिक्वेस्ट) एक टेक्स्ट ब्लॉक है जिसे आप ऑर्डर के दौरान सर्टिफिकेट अथॉरिटी को सबमिट करते हैं। इसमें आपके डोमेन और संगठन की जानकारी और वह पब्लिक की होती है जिसके विरुद्ध सर्टिफिकेट जारी किया जाएगा। Heroku प्लेटफॉर्म पर स्वयं CSR जनरेट नहीं करता है, इसलिए आप ऑफ-प्लेटफॉर्म रिक्वेस्ट जनरेट करते हैं। आपके पास दो विकल्प हैं:
- SSL Dragon CSR Generator का उपयोग करें, जो एक छोटे फॉर्म से CSR और मिलती-जुलती प्राइवेट की तैयार करता है।
- Heroku के लिए CSR कैसे जनरेट करें पर हमारे ट्यूटोरियल का पालन करके OpenSSL के साथ स्थानीय रूप से रिक्वेस्ट जनरेट करें।
परिणामी .csr फाइल को किसी भी टेक्स्ट एडिटर में खोलें और पूरा ब्लॉक कॉपी करें, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– मार्कर शामिल हैं, फिर इसे अपने SSL Dragon ऑर्डर के दौरान पेस्ट करें। CA द्वारा सत्यापित और सर्टिफिकेट जारी करने की प्रतीक्षा करें (DV के लिए कुछ मिनट से लेकर OV/EV के लिए कई कार्य दिवसों तक कहीं भी) और नीचे इंस्टॉलेशन के साथ जारी रखें।
Heroku पर SSL सर्टिफिकेट इंस्टॉल करें
Heroku आपको HTTPS के लिए दो रास्ते देता है। वह चुनें जो आपके द्वारा सर्टिफिकेट प्राप्त करने के तरीके से मेल खाता हो:
- ACM (अधिकांश ऐप्स के लिए अनुशंसित)। Heroku ऐप पर हर कस्टम डोमेन के लिए एक फ्री Let’s Encrypt सर्टिफिकेट जारी करता है, इंस्टॉल करता है, और ऑटो-रिन्यू करता है। कोई फाइल अपलोड करने की जरूरत नहीं, कोई रिन्यूअल कैलेंडर नहीं। यह Eco, Basic, Standard, और Performance डायनो पर उपलब्ध है।
- मैनुअल अपलोड। इसका उपयोग तब करें जब आपको कोई विशिष्ट थर्ड-पार्टी सर्टिफिकेट चाहिए हो (उदाहरण के लिए, एक Organization Validated या Extended Validation प्रोडक्ट, या Let’s Encrypt के अलावा किसी CA का वाइल्डकार्ड)। आप स्वयं डैशबोर्ड या CLI के माध्यम से सर्टिफिकेट और प्राइवेट की अपलोड करते हैं।
चरण 1. अपना कस्टम डोमेन ऐप में जोड़ें
जब तक आपका कस्टम डोमेन ऐप के साथ पंजीकृत नहीं हो जाता, Heroku कोई सर्टिफिकेट (ACM या मैनुअल) प्रोविज़न नहीं करेगा। एलिवेटेड टर्मिनल से, चलाएं:
heroku domains:add www.example.com -a your-app-name
www.example.com को अपने डोमेन से और your-app-name को अपने Heroku ऐप से बदलें। किसी भी अतिरिक्त होस्टनेम के लिए कमांड दोहराएं (उदाहरण के लिए एक बेयर रूट डोमेन या दूसरा सबडोमेन)। आप डैशबोर्ड से Settings > Domains and certificates > Add domain के अंतर्गत भी डोमेन जोड़ सकते हैं।
आपके द्वारा जोड़ा गया प्रत्येक डोमेन एक अनूठे DNS target के साथ लौटाया जाता है, उदाहरण के लिए quiet-fire-1234.herokudns.com। चरण 3 में DNS अपडेट करते समय आपको इस वैल्यू की आवश्यकता होगी।
चरण 2. सर्टिफिकेट प्रोविज़न करें
विकल्प A: ACM (फ्री, ऑटो-रिन्यूइंग Let’s Encrypt)
CLI से ऐप के लिए ACM सक्षम करें:
heroku certs:auto:enable -a your-app-name
Heroku ऐप के हर कस्टम डोमेन के लिए Let’s Encrypt सर्टिफिकेट जारी करना शुरू कर देता है। प्रगति देखने और स्टेटस की पुष्टि करने के लिए, चलाएं:
heroku certs:auto -a your-app-name
आप डैशबोर्ड से भी ACM सक्षम कर सकते हैं: ऐप खोलें, Settings > Domains and certificates पर जाएं, Configure SSL पर क्लिक करें, Automated Certificate Management चुनें, फिर Continue। एक बार DNS सेट हो जाने पर (चरण 3), ACM डोमेन सत्यापन पूरा करता है और सर्टिफिकेट लाइव हो जाता है। एक्सपायरी से लगभग एक महीने पहले रिन्यूअल अपने आप होते हैं।
विकल्प B: थर्ड-पार्टी सर्टिफिकेट का मैनुअल अपलोड
CA आपके इनबॉक्स में तीन फाइलें डिलीवर करता है:
- .crt एक्सटेंशन (PEM फॉर्मेट) के साथ।
- CA बंडल (इंटरमीडिएट सर्टिफिकेट), जिसमें अक्सर .ca-bundle एक्सटेंशन होता है।
- CSR के साथ जनरेट की गई प्राइवेट की (एक .key फाइल)।
Heroku एक सिंगल PEM फाइल की अपेक्षा करता है जिसमें एंड-एंटिटी सर्टिफिकेट के बाद इंटरमीडिएट (एक फुलचेन) होते हैं। Linux या macOS पर, उन्हें cat के साथ जोड़ें:
cat yourcertificate.crt bundle.ca-bundle > server.crt
Windows पर, दोनों फाइलों को एक प्लेन टेक्स्ट एडिटर (Notepad++ या VS Code, Word नहीं) में खोलें और .crt की सामग्री के नीचे, उसी क्रम में, ब्लॉक के बीच बिना किसी खाली लाइन के .ca-bundle की सामग्री पेस्ट करें। संयुक्त फाइल को server.crt के रूप में सेव करें।
Heroku CLI के साथ फुलचेन और प्राइवेट की अपलोड करें:
heroku certs:add server.crt server.key -a your-app-name
यदि आप ऐप पर मौजूदा सर्टिफिकेट को बदल रहे हैं (उदाहरण के लिए, रिन्यूअल के दौरान), तो इसके बजाय certs:update का उपयोग करें ताकि Heroku वही DNS target बरकरार रखे:
heroku certs:update server.crt server.key -a your-app-name
डैशबोर्ड पसंद करते हैं? ऐप खोलें, Settings > Domains and certificates पर जाएं, Configure SSL पर क्लिक करें, Manually चुनें, फिर संयुक्त server.crt को सर्टिफिकेट स्लॉट में और .key फाइल को प्राइवेट-की स्लॉट में ड्रैग करें। Next पर क्लिक करें और पुष्टि करें।
यदि अपलोड करते समय आपको Internal server error दिखाई देता है, तो आपका लोकल Heroku CLI संभवतः पुराना है। इसे heroku update के साथ अपडेट करें और फिर से प्रयास करें। Heroku को RSA की की भी आवश्यकता होती है; ECDSA की अभी मैनुअल अपलोड के लिए समर्थित नहीं हैं।
चरण 3. Heroku DNS target की ओर DNS पॉइंट करें
प्रोविज़निंग विधि के बावजूद, सर्टिफिकेट तभी लाइव होता है जब कस्टम डोमेन का DNS Heroku की ओर रिज़ॉल्व होता है। अपने डोमेन सूचीबद्ध करें और Heroku द्वारा लौटाया गया DNS target कॉपी करें:
heroku domains -a your-app-name
आपको प्रत्येक डोमेन के बगल में quiet-fire-1234.herokudns.com जैसी वैल्यू दिखाई देगी। अपने DNS प्रदाता पर, प्रति डोमेन एक रिकॉर्ड बनाएं:
- सबडोमेन (उदाहरण के लिए www.example.com): Heroku DNS target की ओर इशारा करते हुए एक CNAME रिकॉर्ड बनाएं।
- Apex / रूट डोमेन (उदाहरण के लिए example.com): DNS स्पेक के अनुसार apex पर CNAME की अनुमति नहीं है, इसलिए उसी Heroku DNS target की ओर इशारा करते हुए ALIAS, ANAME, या फ्लैटन्ड-CNAME रिकॉर्ड (सटीक नाम आपके DNS प्रदाता पर निर्भर करता है) का उपयोग करें। यदि आपका DNS प्रदाता इनमें से किसी का समर्थन नहीं करता है, तो DNS को ऐसे किसी प्रदाता पर होस्ट करें जो इसका समर्थन करता हो (Cloudflare, DNSimple, Route 53, NS1, easyDNS, आदि)।
DNS को your-app-name.herokuapp.com या किसी भी *.herokussl.com होस्टनेम की ओर पॉइंट न करें: ACM उनके माध्यम से सर्टिफिकेट को सत्यापित नहीं कर सकता, और मैनुअल बाइंडिंग भी सही ढंग से रूट नहीं होगी। हमेशा Heroku द्वारा असाइन किए गए प्रति-डोमेन DNS target का उपयोग करें।
DNS बदलावों को प्रोपेगेट होने में कुछ मिनट से लेकर कुछ घंटे तक लग सकते हैं। एक बार जब Heroku अपडेट किया गया रिकॉर्ड देखता है, तो ACM स्वचालित रूप से सत्यापन पूरा कर लेता है (या आपका मैनुअल सर्ट ट्रैफिक सर्व करना शुरू कर देता है)।
चरण 4. सत्यापित करें कि सर्टिफिकेट लाइव है
CLI से इंस्टॉलेशन की पुष्टि करें:
heroku certs:info -a your-app-name
आउटपुट सर्टिफिकेट, जारी करने वाले CA, एक्सपायरेशन तिथि, और यह जिन डोमेन को कवर करता है, उन्हें सूचीबद्ध करता है। फिर अपनी साइट को ब्राउज़र में https:// पर खोलें और जांचें कि पैडलॉक मौजूद है, और यह पुष्टि करने के लिए हमारे SSL Checker के साथ एक गहन बाहरी स्कैन चलाएं कि सर्टिफिकेट चेन पूर्ण है और प्रोटोकॉल सही ढंग से कॉन्फ़िगर किए गए हैं।
अक्सर पूछे जाने वाले प्रश्न
नहीं। लेगेसी SSL Endpoint ऐड-ऑन 2021 में डिप्रीकेट कर दिया गया था (नई प्रोविज़निंग 14 मई, 2021 को बंद हो गई थी) और उसी वर्ष बाद में इसका जीवन समाप्त हो गया। हर नया ऐप SNI के साथ Heroku SSL का उपयोग करता है, जो हर पेड डायनो टियर पर फ्री शामिल है। लंबे समय से चल रहे ऐप्स पर मौजूदा SSL Endpoint काम करना जारी रखते हैं, लेकिन Heroku उन्हें Heroku SSL में माइग्रेट करने की सिफारिश करता है।
जब तक आपके पास ऐसा न करने का कोई विशिष्ट कारण न हो, ACM का उपयोग करें। यह फ्री है, एक्सपायरी से लगभग एक महीने पहले हर सर्टिफिकेट को ऑटो-रिन्यू करता है, और आपकी टीम के काम से रिन्यूअल कैलेंडर हटा देता है। जब आपको किसी विशिष्ट CA से Domain Validated, Organization Validated, या Extended Validation सर्टिफिकेट, वाइल्डकार्ड सर्टिफिकेट, या ऐसे होस्टनेम को कवर करने वाला मल्टी-डोमेन (SAN) सर्टिफिकेट चाहिए जो सभी इस Heroku ऐप पर नहीं हैं, तो मैनुअल अपलोड चुनें।
नहीं। फ्री डायनो 28 नवंबर, 2022 को रिटायर कर दिए गए थे। कस्टम डोमेन और SSL (ACM और मैनुअल दोनों) के लिए एक पेड प्लान की आवश्यकता है: Eco, Basic, Standard, या Performance। नवंबर 2025 तक, ACM और मैनुअल दोनों सर्टिफिकेट Eco डायनो पर समर्थित हैं, जो कस्टम डोमेन पर HTTPS का सबसे कम लागत वाला रास्ता है।
दो सामान्य कारण। पहला, DNS अभी भी Heroku द्वारा असाइन किए गए प्रति-डोमेन DNS target (जैसे quiet-fire-1234.herokudns.com) के बजाय *.herokuapp.com की ओर पॉइंट किया गया है। अपने DNS प्रदाता पर रिकॉर्ड फिर से जांचें और इसे अपडेट करें। दूसरा, DNS बदल गया है लेकिन प्रोपेगेशन अभी पूरा नहीं हुआ है; कुछ मिनट से कुछ घंटे तक इंतजार करें, फिर पुष्टि के लिए heroku certs:info -a your-app-name चलाएं।
ACM के साथ, आपको नहीं करना पड़ता: Heroku Let’s Encrypt से सर्टिफिकेट को स्वचालित रूप से फिर से जारी करता है, लगभग एक्सपायरी से एक महीने पहले। मैनुअल सर्टिफिकेट के साथ, रिन्यूअल ऑर्डर करें (एक नया CSR जनरेट करना), एक नई फुलचेन फाइल बनाएं, और heroku certs:update server.crt server.key -a your-app-name चलाएं। certs:add के बजाय certs:update का उपयोग करने से मौजूदा DNS target बरकरार रहता है, इसलिए आपको फिर से DNS को छूने की आवश्यकता नहीं है। पब्लिक SSL/TLS सर्टिफिकेट वर्तमान में लगभग एक वर्ष तक सीमित हैं, इसलिए यदि आप मैनुअल अपलोड पर बने रहते हैं तो इसे सालाना दोहराने की योजना बनाएं, या ACM पर स्विच करें और Heroku को इसे संभालने दें।
लगभग हमेशा एक पुराना Heroku CLI। नवीनतम संस्करण में अपग्रेड करने के लिए heroku update चलाएं, फिर कमांड को फिर से आज़माएं। यदि त्रुटि बनी रहती है, तो पुष्टि करें कि सर्टिफिकेट फाइल PEM फॉर्मेट में एक फुलचेन है (पहले एंड-एंटिटी, बाद में इंटरमीडिएट) और प्राइवेट की एक RSA की है जो आपके द्वारा CA को सबमिट किए गए CSR से मेल खाती है।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


