डोमेन नाम से कनेक्ट करें
डिफ़ॉल्ट रूप से, सर्वर एक काल्पनिक नाम वाला सेल्फ़-साइंड सर्टिफिकेट दिखाता है और इसकी एक्सेस कीज़ सीधे इसके IP एड्रेस से जुड़ती हैं। इसे अपना एक डोमेन नाम दें, जिसमें किसी सर्टिफिकेट अथॉरिटी का सर्टिफिकेट हो, और इससे कनेक्शन किसी सामान्य वेबसाइट पर जाने जैसा दिखेगा।
डोमेन से क्या बदलता है
बदलाव के बाद बनी कीज़ में डोमेन शामिल होता है। कनेक्ट करते समय ऐप्स इसे खोजते हैं और ब्राउज़र की तरह सर्वर के सर्टिफिकेट की जांच करते हैं। इसलिए, यदि आप सर्वर को नए IP एड्रेस पर ले जाते हैं, तो बस डोमेन को उस पर पॉइंट करें और वे कीज़ काम करती रहेंगी।
कीज़ में सर्वर के IP एड्रेस भी बने रहते हैं, ताकि डोमेन न खोज पाने वाला ऐप पहले की तरह कनेक्ट हो सके।
शुरू करने से पहले
- आपके नियंत्रण वाला डोमेन या सबडोमेन, जैसे
vpn.example.com। वाइल्डकार्ड नहीं, बल्कि एक सिंगल नाम इस्तेमाल करें। - एक DNS रिकॉर्ड जो इसे सर्वर के कनेक्शन IP पर पॉइंट करे: एक A रिकॉर्ड, और यदि सर्वर में IPv6 एड्रेस है तो AAAA रिकॉर्ड। इसे सीधे सर्वर पर पॉइंट करें, किसी CDN प्रॉक्सी के ज़रिए नहीं।
- मैनेज्ड सर्वर पर, जब तक आप डोमेन का इस्तेमाल करते हैं तब तक TCP पोर्ट
80खुला होना चाहिए: सर्टिफिकेट की जांच इसी के ज़रिए होती है और हर कुछ महीनों में इसी से रिन्यू किया जाता है।
मैनेज्ड सर्वर पर
- VpnHood! MANAGER में, Server Farms और फिर फ़ार्म खोलें। SSL / TLS Certificates के अंतर्गत, Add चुनें, Domain Name के रूप में डोमेन दर्ज करें और Create चुनें। MANAGER इसके लिए एक सेल्फ़-साइंड सर्टिफिकेट बनाता है और इसे खोलता है।
- Signing को एडिट करें और AutoSign चुनें। MANAGER अब Let's Encrypt से सर्टिफिकेट का अनुरोध करता है, जो TCP पोर्ट
80पर आपके सर्वर के ज़रिए डोमेन की पुष्टि करता है। पूरा होने पर, Signature पर CA Signed दिखेगा, और MANAGER एक्सपायर होने से पहले सर्टिफिकेट को अपने आप रिन्यू कर देगा। - इसके बाद Visibility को एडिट करें और PublicInToken चुनें। फ़ार्म की प्रत्येक की में अब डोमेन शामिल होगा, और फ़ार्म का पिछला सर्टिफिकेट Public बन जाएगा।
अब से MANAGER से कॉपी की गई कीज़ में डोमेन शामिल होगा। पुरानी की वाले ऐप्स कनेक्ट होने पर नई की पा लेंगे, क्योंकि Push token to clients डिफ़ॉल्ट रूप से चालू रहता है। तब तक फ़ार्म का पिछला सर्टिफिकेट बनाए रखें: पुरानी कीज़ तभी तक काम करती हैं जब तक वह मौजूद है।
यदि जांच विफल हो जाती है, तो Signing इसका कारण दिखाता है, और कुछ विफल प्रयासों के बाद यह वापस Manual पर चला जाता है। DNS रिकॉर्ड ठीक करें या पोर्ट खोलें, फिर दोबारा AutoSign चुनें।
जांचने के लिए, फ़ार्म खोलें: Access Points के तहत डोमेन सबसे पहले आता है।
सर्वर के अपने पेज में भी SSL / TLS Certificates की सूची होती है। वहां मौजूद सर्टिफिकेट केवल उसी सर्वर का होता है, इसलिए अपनी कीज़ वाले डोमेन को फ़ार्म में जोड़ें।
स्टैंडअलोन सर्वर पर
एक स्टैंडअलोन सर्वर अपने आप सर्टिफ़िकेट प्राप्त नहीं कर सकता। किसी सर्टिफ़िकेट अथॉरिटी से डोमेन के लिए उसकी प्राइवेट की (private key) सहित PFX फ़ाइल के रूप में सर्टिफ़िकेट लें, और इसे उसी नाम से /opt/VpnHoodServer/storage/access/certificates/default.pfx की जगह रख दें।
फिर /opt/VpnHoodServer/storage/appsettings.json में FileAccessManager के तहत फ़ाइल का पासवर्ड SslCertificatesPassword में डालें और IsValidHostName को true पर सेट करें। नए इंस्टॉलेशन में ऐसी कोई फ़ाइल नहीं होती: इसे बनाएं, और उसके बाद से सर्वर मूल सेटिंग्स की जगह इसी का उपयोग करेगा।
पूरी फ़ाइल, जिसमें उदाहरण की जगह आपके सर्टिफ़िकेट का पासवर्ड है
{
"FileAccessManager": {
"SslCertificatesPassword": "your-pfx-password",
"IsValidHostName": true
},
"ServerConfig": {
"LogAnonymizer": true,
"AddListenerIpsToNetwork": "*"
},
"LogLevel": "Information"
}
सर्वर डोमेन सीधे सर्टिफ़िकेट से ही ले लेता है, इसलिए इसके लिए अलग से कोई सेटिंग नहीं है।
सर्वर को sudo systemctl restart VpnHoodServer से रीस्टार्ट करें, या Docker में sudo docker restart VpnHoodServer का उपयोग करें। गलत पासवर्ड होने पर यह शुरू नहीं होगा, और इसके लॉग में The server could not start. दिखेगा।
इस बदलाव से पहले बनी कीज़ काम करना बंद कर देंगी, क्योंकि वे पुराने सर्टिफ़िकेट पर निर्भर हैं। उनमें से प्रत्येक को फिर से प्रिंट करें और अपने यूज़र्स को नई की दें: इसके विकल्प और उपयोग पहले जैसे ही रहेंगे। किसी की (key) की ID /opt/VpnHoodServer/storage/access में उसकी फ़ाइल का नाम होती है, बिना .token2 के।
कीज़ की सूची देखें, फिर उसकी ID से किसी एक को दोबारा प्रिंट करें
sudo ls /opt/VpnHoodServer/storage/access
sudo /opt/VpnHoodServer/vhserver print 2b9d4a6e-1c3f-4e8a-9b7d-5f0e8c2a1d34
Docker में, इसे sudo docker exec VpnHoodServer /app/vhsupervisor के ज़रिए चलाएं, ठीक वैसे ही जैसे vhserver gen के लिए किया था।
नई कीज़ में डोमेन शामिल होता है और वे सीधे सर्टिफ़िकेट पर निर्भर नहीं होतीं, इसलिए सर्टिफ़िकेट रिन्यू करने पर भी वे काम करती रहेंगी: बस नई फ़ाइल को बदलें और सर्वर रीस्टार्ट करें।