डॉकरफाइल में प्रमाण पत्र कैसे संभालें

मैं मावेन के आधार पर एक डॉकर छवि लिख रहा हूं:3.6.0-जेडीके-11-स्लिम हमारे जेनकिंस पाइपलाइन के साथ एकीकृत करने के लिए । मैं एक कॉर्पोरेट वातावरण में काम कर रहा हूं जो एक बहुत तंग फ़ायरवॉल के पीछे है, और मुझे अपने नेक्सस सर्वर से आवश्यक निर्भरता डाउनलोड करने के लिए प्रमाण पत्र जोड़ने की आवश्यकता है ।

हालाँकि, क्योंकि डॉकर केवल छवि में फ़ाइलों की प्रतिलिपि बनाते समय सापेक्ष पथों की अनुमति देता है, मुझे सीए प्रदान करने की आवश्यकता होगी । डॉकरफाइल के समान निर्देशिका में सीआरटी और इस प्रकार एससीएम के लिए सब कुछ प्रतिबद्ध है जिसके बारे में मैं रोमांचित नहीं हूं ।

क्या मैं अपने सीए-प्रमाण को प्रतिबद्ध नहीं करने में बहुत सतर्क हूं? या क्या कोई वर्कअराउंड है जो मुझे उस प्रमाणपत्र का उपयोग करने की अनुमति देगा जो पहले से ही बिल्ड सर्वर पर मौजूद है?

Dockerfile संदर्भ के लिए:

## Build Stage#FROM maven:3.6.0-jdk-11-slimCOPY ca.crt /usr/local/share/ca-certificatesRUN update-ca-certificatesCOPY pom.xml /tmp/pom.xmlCOPY settings.xml /usr/share/maven/ref/settings.xmlRUN mvn -f /tmp/pom.xml -X -s /usr/share/maven/ref/settings.xml clean package

अस्वीकरण मुझे यकीन नहीं है कि यह इस प्रश्न को प्रस्तुत करने के लिए सही मंच है, इसलिए मैं खुशी से इसे स्थानांतरित करूंगा यदि नहीं ।

अगर ca.crt है सार्वजनिक कुंजी प्रमाणपत्र यह परिभाषा के अनुसार है सार्वजनिक और इसमें कोई भी जानकारी नहीं है जो किसी को उस सर्वर को प्रतिरूपित करने की अनुमति देती है जिसके पास संबंधित निजी कुंजी प्रमाणपत्र है । इसलिए फ़ाइल को रेपो में जोड़ना सुरक्षित है, लेकिन । .. एक बेहतर समाधान है:

सर्वर से गतिशील रूप से सार्वजनिक कुंजी प्रमाणपत्र प्राप्त करें । निम्नलिखित कमांड के साथ आप प्रमाण पत्र पर हस्ताक्षर करने वाले सीए के "स्व हस्ताक्षरित प्रमाण पत्र" की सार्वजनिक कुंजी प्राप्त कर सकते हैं:

echo quit | openssl s_client -showcerts -servername example.com -connect example.com:443 2>/dev/null | awk '/BEGIN/,/END/{ if(/BEGIN/){c=""};c=c $0 "\n"}END{print c}' >ca.crt || true

फ़ाइल ca.crt सार्वजनिक कुंजी प्रमाणपत्र शामिल है ।

इस तरह जब भी आप डॉकर छवि बनाते हैं तो सीए का प्रमाण पत्र "ताज़ा"होता है ।