अभी हाल ही में मैं अपनी कंपनी के उपयुक्त भंडार के साथ इस मुद्दे पर आया था। समस्या यह थी कि यदि हम मानक http परिवहन का उपयोग करते हैं तो किसी और को आसानी से पैकेज मिल सकता है। जैसा कि कंपनी अपने स्वयं के मालिकाना सॉफ्टवेयर की पैकेजिंग कर रही है और इसे हर किसी के साथ साझा नहीं करना चाहती है, http ट्रांसपोर्ट एक समस्या बन जाती है। एक त्रासदी नहीं, बल्कि एक समस्या है। पैकेज तक पहुंच को सीमित करने के कुछ तरीके हैं - फ़ायरवॉलिंग, वेब-सर्वर स्तर पर पहुंच को प्रतिबंधित करना, परिवहन के रूप में ssh का उपयोग करना। इस विषय पर पढ़ने के लिए काफी आसान यहां पाया जा सकता है: आपके निजी डेबियन रिपॉजिटरी तक पहुंच को प्रतिबंधित करना
हमारे मामले में, हमने https परिवहन + ग्राहक प्रमाणपत्र प्रमाणीकरण का उपयोग करने का निर्णय लिया। संक्षेप में, यह सब है:
- स्व-हस्ताक्षरित प्रमाण पत्र, क्लाइंट और सर्वर (आसान-आरएसए का उपयोग करके) तैयार करें;
वेबसर्वर को कॉन्फ़िगर करें जो केवल https स्वीकार करने के लिए रिपॉजिटरी को फ्रन्ट करता है; नग्नेक्स के मामले में ऐसा लग सकता है:
server {
listen 443;
root /path/to/public;
server_name secure_repo;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:;
ssl_prefer_server_ciphers on;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
ssl_verify_client on;
location / {
autoindex on;
}
}
ग्राहक प्रमाण पत्र, क्लाइंट कुंजी और सीए / / / apt / ssl के लिए सर्टिफिकेट और, Ubuntu के मामले में, /etc/apt/apt.conf.d के लिए 00https फ़ाइल जोड़ें:
Debug::Acquire::https "true";
Acquire::https::example.com {
Verify-Peer "true";
Verify-Host "false";
CaInfo "/etc/apt/ssl/ca.crt";
SslCert "/etc/apt/ssl/client.crt";
SslKey "/etc/apt/ssl/client.key";
};
ध्यान रखें, यदि आप स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहे हैं, तो मेजबान सत्यापन को बंद करना महत्वपूर्ण है: Verify-Host "false";
यदि आप ऐसा नहीं करते हैं, तो आप एक लिंक भेजेंगे:
SSL: certificate subject name (blah-blah-blah) does not match target host name 'example.com'
और यहां हम जाते हैं, रिपॉजिटरी तक कोई अनधिकृत पहुंच नहीं है। इसलिए यह काफी उपयोगी और शक्तिशाली चीज है।