यह मार्गदर्शिका दिखाती है कि बाहरी होस्ट और EAB (बाहरी खाता बाइंडिंग) का उपयोग करके TrueNAS पर ACME SSL प्रमाणपत्र कैसे स्थापित करें। यह TrueNAS CORE और TrueNAS SCALE दोनों के साथ संगत है।

TrueNAS के पास मूल ACME समर्थन है, लेकिन केवल इसके अंतर्निहित DNS-01 एकीकरण के माध्यम से Encrypt करने के लिए। यदि आप ACME + EAB के साथ एक वाणिज्यिक ACME प्रदाता (Sectigo, DigiCert, आदि) का उपयोग करना चाहते हैं, तो आपको ACME क्लाइंट जैसे acme.sh का उपयोग करके अपने प्रमाणपत्र को बाहरी रूप से उत्पन्न और नवीनीकृत करना होगा, फिर इसे TrueNAS में तैनात करें।
शुरू करने से पहले
यहाँ आपको क्या चाहिए:
- आपके TrueNAS सार्वजनिक आईपी की ओर इशारा करने वाला एक डोमेन नाम (उदाहरण के लिए, nas.example.com)
- ट्रूनास कोर 13.x या ट्रूनास स्केल 23.x+
- एक बाहरी लिनक्स/बीएसडी मशीन, वीपीएस, या होम सर्वर (acme.sh चलाने के लिए)
- ACME निर्देशिका URL, EAB कुंजी ID, और EAB HMAC आपके वाणिज्यिक CA से
- यदि आप सिंकिंग को स्वचालित करने की योजना बना रहे हैं तो TrueNAS तक SSH का उपयोग
नोट: TrueNAS अपने UI में मनमाने ACME प्रदाताओं का समर्थन नहीं करता है। सभी वाणिज्यिक ACME स्वचालन TrueNAS के बाहर होना चाहिए।
चरण 1: acme.sh को अपने बाहरी होस्ट पर स्थापित करें
यह मशीन ACME खाता पंजीकरण, जारी करने और नवीनीकरण को संभालेगी।
चलाना:
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
यदि संस्करण सही ढंग से प्रिंट करता है, तो आप अच्छे हैं।
चरण 2: अपने ACME खाते को अपने वाणिज्यिक CA (ACME + EAB) के साथ पंजीकृत करें
आपका सीए डैशबोर्ड प्रदान करेगा:
- ईएबी कुंजी आईडी
- ईएबी एचएमएसी कुंजी
- एसीएमई निर्देशिका यूआरएल
अपना ACME खाता पंजीकृत करें:
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
मूल्यों को अपने स्वयं के साथ बदलें। आप इसे केवल एक बार चलाएं।
चरण 3: प्रमाणपत्र जारी करें (DNS-01 सत्यापन आवश्यक)
TrueNAS लगभग हमेशा NAT के पीछे होता है, इसलिए DNS सत्यापन सबसे सुरक्षित है।
यहाँ एक manaul DNS उदाहरण दिया गया है:
acme.sh --issue \
-d nas.example.com \
--dns dns_manual \
--server https://acme.yourca.com/v2/acme
acme.sh आपको TXT रिकॉर्ड बनाने के लिए कहेंगे:
_acme-challenge.nas.example.com TXT <token>
अपने DNS प्रबंधक में TXT रिकॉर्ड बनाएं और प्रसार की प्रतीक्षा करें।
प्रसार की जाँच करें:
dig TXT _acme-challenge.nas.example.com +short
एक बार टोकन दिखाई देने के बाद, उसी कमांड को फिर से चलाएं और acme.sh प्रमाणपत्र जारी करना समाप्त कर देगा। आपकी फ़ाइलें ~/.acme.sh/nas.example.com/ पर सहेजी जाएंगी।
अंदर आप पाएंगे:
- fullchain.cer: सर्वर प्रमाणपत्र + मध्यवर्ती
- nas.example.com.key: निजी कुंजी
- ca.cer: सीए श्रृंखला (यदि अलग से प्रदान की गई हो)
चरण 4: प्रमाणपत्र को TrueNAS में आयात करें
- यहां जाएं: TrueNAS UI > सिस्टम > प्रमाणपत्र
- जोड़ें पर क्लिक करें और प्रमाणपत्र आयात करें का चयन करें
- अपनी प्रमाणपत्र फ़ाइलें अपलोड करें और सहेजें पर क्लिक करें
अपनी सेवाओं को प्रमाणपत्र असाइन करें:
- वेब यूआई
- एसएमबी/एनएफएस सेवाएं (यदि लागू हो)
- मिडलवेयर एपीआई
- HTTPS (TrueNAS SCALE) का उपयोग करके रिवर्स प्रॉक्सी या ऐप्स
चरण 5: नवीनीकरण और परिनियोजन को स्वचालित करें
TrueNAS प्रमाणपत्र स्वतः पुल नहीं करता है। आपको नवीनीकृत प्रमाणपत्रों को TrueNAS में पुश करना होगा।
1. एक परिनियोजन स्क्रिप्ट बनाएं
अपने बाहरी ACME होस्ट पर, /usr/local/bin/truenas-deploy.sh बनाएं:
नोट: यह स्क्रिप्ट केवल तभी काम करती है जब TrueNAS SSH को चलाने midcltकी अनुमति देने वाले उपयोगकर्ता के साथ SSH एक्सेस की अनुमति देता है। यह नई कुंजी + प्रमाणपत्र /tmp/ को अपलोड करता है और TrueNAS API के माध्यम से सक्रिय प्रमाणपत्र को बदल देता है। सुनिश्चित करें कि आपके पथ और डोमेन आपके acme.sh सेटअप से मेल खाते हैं।
#!/bin/bash
DOMAIN="nas.example.com"
NAS_USER="root"
NAS_HOST="truenas.local"
CERT_PATH="$HOME/.acme.sh/$DOMAIN"
KEY="$CERT_PATH/$DOMAIN.key"
CERT="$CERT_PATH/fullchain.cer"
scp "$KEY" "$NAS_USER@$NAS_HOST:/tmp/key.key"
scp "$CERT" "$NAS_USER@$NAS_HOST:/tmp/cert.cer"
ssh "$NAS_USER@$NAS_HOST" <<EOF
midclt call certificate.update '{"certificate": "custom", "csr": null, "privatekey": "$(cat /tmp/key.key)", "certificate": "$(cat /tmp/cert.cer)"}'
EOF
इसे निष्पादन योग्य बनाएं:
chmod +x /usr/local/bin/truenas-deploy.sh
2. एक नवीनीकरण हुक जोड़ें
acme.sh में एक परिनियोजन हुक जोड़ें:
acme.sh --deploy-hook truenas-deploy \
-d nas.example.com
या इसे ~/.acme.sh/deploy/truenas-deploy.sh के अंदर जोड़ें।
3. acme.sh सब कुछ संभालने दें
यहां बताया गया है कि acme.sh स्वचालित रूप से क्या करता है:
- दैनिक नवीनीकरण के लिए जाँच
- प्रमाणपत्र का नवीनीकरण करें
- आपकी परिनियोजन स्क्रिप्ट को ट्रिगर करता है
- अद्यतन प्रमाणपत्रों को TrueNAS में पुश करता है
- परिवर्तनों को चुपचाप लागू करता है
एक बार कॉन्फ़िगर हो जाने के बाद, आपको प्रमाणपत्र नवीनीकरण के लिए TrueNAS को फिर से छूने की आवश्यकता नहीं है।
सामान्य प्रश्न
यदि आप पहली बार TrueNAS पर ACME ऑटोमेशन सेट कर रहे हैं, तो ये त्वरित उत्तर उन समस्याओं को कवर करते हैं जिनका उपयोगकर्ताओं को अक्सर सामना करना पड़ता है।
क्या मैं TrueNAS GUI और अन्य सेवाओं (SMB, NFS, iSCSI पोर्टल) दोनों के लिए एक प्रमाणपत्र का उपयोग कर सकता हूँ?
हाँ। एक बार जब आप सिस्टम > प्रमाणपत्र में प्रमाणपत्र आयात कर लेते हैं, तो आप वेब यूआई के लिए और किसी भी सेवा के लिए उसी प्रमाणपत्र का चयन कर सकते हैं जो HTTPS को उजागर करता है (वेब यूआई, एपीआई, शायद रिवर्स प्रॉक्सी/एचएपीरॉक्सी यदि आप इसका उपयोग करते हैं)। आपको प्रति सेवा अलग-अलग प्रमाणपत्रों की आवश्यकता नहीं है जब तक कि आप अलग-अलग होस्टनाम नहीं चाहते हैं।
मेरा NAS CGNAT या डबल NAT के पीछे है। क्या मैं अभी भी ACME का उपयोग कर सकता हूँ?
हां, लेकिन आपको DNS-01 सत्यापन का उपयोग करना चाहिए। HTTP-01 काम नहीं करेगा क्योंकि ACME सर्वर पोर्ट 80 पर आपके NAS तक नहीं पहुंच सकता है। DNS-01 के साथ, CA केवल _acme-challenge.yourdomain.com पर आपके TXT रिकॉर्ड की जांच करता है, इसलिए इसे परवाह नहीं है कि NAS वास्तव में कहाँ बैठता है।
क्या होगा यदि acme.sh प्रमाणपत्र को नवीनीकृत करता हूं लेकिन मैं इसे TrueNAS में फिर से आयात करना भूल जाता हूं?
TrueNAS केवल उस पुराने प्रमाणपत्र का उपयोग करता रहेगा जिसे आपने पिछली बार आयात किया था। नवीनीकृत फ़ाइलें आपके बाहरी होस्ट पर तब तक बैठती रहती हैं जब तक आप उन्हें फिर से अपलोड नहीं करते (या आपकी स्क्रिप्ट/एपीआई इसे संभाल लेती है)।
आपकी साइट अभी भी काम करेगी, लेकिन अंततः ब्राउज़र एक समय सीमा समाप्त हो चुके प्रमाणपत्र के बारे में चेतावनी देना शुरू कर देंगे। इसलिए यह या तो पुन: आयात को स्क्रिप्टिंग करने या समाप्ति तिथि के करीब एक अनुस्मारक लगाने के लायक है।
क्या मैं TrueNAS के साथ वाइल्डकार्ड प्रमाणपत्र (जैसे *.example.com) का उपयोग कर सकता हूं
हाँ। जब तक निजी कुंजी और प्रमाणपत्र मेल खाते हैं, तब तक TrueNAS को परवाह नहीं है कि यह वाइल्डकार्ड या सिंगल-होस्ट प्रमाणपत्र है। आपको अभी भी acme.sh में DNS-01 के माध्यम से वाइल्डकार्ड जारी करना होगा, फिर fullchain.cer + *.example.com.key को TrueNAS में आयात करना होगा। बस सावधान रहें कि आप उस कुंजी का पुन: उपयोग कहां करते हैं। एक वाइल्डकार्ड प्रमाणपत्र अपने द्वारा कवर किए गए सभी उप डोमेन पर पूर्ण नियंत्रण देता है।
अंतिम शब्द
यह वर्कफ़्लो आपको सिस्टम से लड़े बिना TrueNAS पर ACME प्रमाणपत्र स्थापित करने का एक स्थिर, विश्वसनीय तरीका देता है। आपका बाहरी होस्ट प्रमाणपत्र जारी करने, नवीनीकृत करने और प्रबंधित करने का काम संभालता है, जबकि जब भी फ़ाइलें अपडेट की जाती हैं तो TrueNAS को केवल स्वच्छ आयात प्राप्त होता है।
एक बार प्रक्रिया शुरू हो जाने के बाद, सब कुछ पृष्ठभूमि में चुपचाप चलता है, और आप केवल तभी कदम रखते हैं जब आप स्क्रिप्ट को समायोजित करना चाहते हैं या क्रेडेंशियल्स को घुमाना चाहते हैं।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

