ডকার ধারক এসএসএল শংসাপত্রগুলি


88

ডকার টান থেকে আসা চিত্রগুলিতে এসএসএল শংসাপত্র যুক্ত করার কোনও দুর্দান্ত উপায় আছে কি?

আমি একটি ফাইল / ইত্যাদি / এসএসএল / সার্টিফিকেটে যুক্ত করে আপডেট-সিএ-শংসাপত্রগুলি চালানোর একটি সহজ এবং পুনরুত্পাদনযোগ্য উপায়ের সন্ধান করছি। (এটি উবুন্টু এবং ডেবিয়ান চিত্রগুলি আবরণ করা উচিত)।

আমি CoreOS এ ডকার ব্যবহার করছি, এবং কোরস মেশিনটি প্রয়োজনীয় এসএসএল শংসাপত্রগুলিকে বিশ্বাস করে, তবে ডকের পাত্রে স্পষ্টতই কেবল ডিফল্ট থাকে।

আমি docker run --entrypoint=/bin/bashএরপরে শংসাপত্র যুক্ত করে চালানোর চেষ্টা করেছি update-ca-certificates, তবে এন্ট্রি পয়েন্টটি স্থায়ীভাবে ওভাররাইড করে বলে মনে হচ্ছে।

আমি এখন ভাবছি, /etc/ssl/certsহোস্ট মেশিনের অনুলিপি থেকে কেবল ধারকটিতে আরোহণ করা কি আরও মার্জিত হবে ? এটি করার ফলে ধারকরা হোস্টের মতো একই জিনিসগুলিকে বিশ্বাস করতে পারে।

আমি একটি বিরক্তিকর প্রক্সি নিয়ে কাজ করছি যা সমস্ত কিছুকে পদত্যাগ করে :(। যা এসএসএলকে ভঙ্গ করে এবং ধারকগুলিকে কাজ করতে একরকম বিচিত্র করে তোলে।


4
আপনি কি এমন একটি ডকফাইল তৈরি করার কথা চিন্তা করেছেন যা আপনার চিত্র ব্যবহার করবে, ফাইল যুক্ত করবে এবং আপডেট-সিএ-শংসাপত্রগুলি চালাবে? বা এটি কি আপনি খুঁজছেন না?
ক্যালিন অ্যাসুরড

আমি কিছু ইমেজের জন্য এটি করেছি। এটি কোনও খারাপ সমাধান নয়। আপনার নিজের সাথে সমস্ত চিত্র তৈরির প্রয়োজন নেই।
বেউ ট্রপ

উত্তর:


75

ডকার পাত্রে ব্যবহার করে শংসাপত্রগুলি মাউন্ট করুন -v:

docker run -v /host/path/to/certs:/container/path/to/certs -d IMAGE_ID "update-ca-certificates"

4
এটা বেশ নিফটি। যদি ধারক একই ধরণের ssl_certs ব্যবহার করে তবে আপনাকে আপডেট-সিএ-শংসাপত্র লাইনও লাগবে না, হোস্টটি ইতিমধ্যে এটি সম্পন্ন করে ফেলেছে :)।
বেউ ট্রপ

4
এবং যদি আমরা মেঘে বিল্ডিং হয়?
ইওকস

27

আমি এর অনুরূপ কিছু করার চেষ্টা করছি। উপরের মতামত হিসাবে, আমি মনে করি আপনি তখন একটি কাস্টম ডকফেরফিল ( ADDআপনার বেস চিত্র হিসাবে টানা চিত্রটি ব্যবহার করে), আপনার শংসাপত্র দিয়ে একটি নতুন চিত্র তৈরি করতে চান RUN update-ca-certificates। এই নতুন চিত্রটি থেকে আপনি যখনই কোনও ধারক শুরু করবেন তখন এইভাবে আপনার একটি সামঞ্জস্যপূর্ণ অবস্থা থাকবে।

# Dockerfile
FROM some-base-image:0.1
ADD you_certificate.crt:/container/cert/path
RUN update-ca-certificates

আসুন আমরা docker buildএই ডকফারফিলের বিরুদ্ধে আইএমএক্সআইডিআইডি উত্পাদন করি। তারপরে docker run -d [any other options] IMAGE_ID, সেই আদেশ দ্বারা শুরু করা পাত্রে আপনার শংসাপত্রের তথ্য থাকবে। সহজ এবং পুনরুত্পাদনযোগ্য।


সাধারণত আমি অন্যান্য উত্তরগুলিতে উল্লিখিত ডকার রান-ভি সমাধানটিকে পছন্দ করব। আপনার ডক তৈরির সময় শংসাপত্রের প্রয়োজন থাকলে আপনার সমাধানটিও কার্যকর হয়। ধন্যবাদ!
বেসটিয়ান

10
আমি কোনও পাবলিক পাত্রে শংসাপত্র রাখার বিষয়ে সতর্ক থাকব। অন্য কেউ আপনার ধারকটি টানতে পারে এবং আপনার ব্যক্তিগত শংসাপত্রগুলি বের করতে পারে।
skibum55

4
যদিও এটি একটি খুব ভাল পয়েন্ট, উপরের সমাধানটি সর্বজনীন করে না। এটি স্থানীয়ভাবে নির্মিত এবং তারপরে ব্যক্তিগতভাবে ব্যবহৃত একটি চিত্রে আপনার নিজের শংসাপত্র যুক্ত করার উদ্দেশ্যে। আপনি পারে তারপর একটি পাবলিক সংগ্রহস্থলে ফলে ইমেজ ধাক্কা, কিন্তু যে একটি খারাপ ধারণা হবে হিসাবে আপনি বলেন।
শুডগস্টন

9
সার্টিফিকেট গুলো কখন থেকে গোপন?
টেক্রাফ

4
যেহেতু এটি প্রকাশিত হচ্ছে শংসাপত্রটি মেলতে আপনার সার্ভারের একটি ব্যক্তিগত কী প্রয়োজন।
জন রিক্স

22

যেমন উপরে একটি মন্তব্যে পরামর্শ দেওয়া হয়েছিল , হোস্টের শংসাপত্রের স্টোরটি যদি অতিথির সাথে সামঞ্জস্য করে তবে আপনি কেবল এটি সরাসরি মাউন্ট করতে পারেন।

একটি ডেবিয়ান হোস্টে (এবং ধারক), আমি সফলভাবে করেছি:

docker run -v /etc/ssl/certs:/etc/ssl/certs:ro ...

সুতরাং বিল্ড সার্ভারে ডকার চিত্র তৈরি করার সময় কী করবেন? : /
ইওকস

@ সপ্তাহে আপনি কিছু বেসরকারী ডিএনএসে আপনার শংসাপত্রগুলি হোস্ট করতে পারেন এবং এগুলি আপনার শিরোনামের চার্টের মধ্যে লোড করতে পারেন এবং আপনি আপনার ক্লাস্টারে ভলিউম তৈরি করতে স্বয়ংক্রিয় করতে পারেন।
বাসম গামাল

2

আপনি ধারকটিতে ভলিউম মাউন্ট করতে আপেক্ষিক পথ ব্যবহার করতে পারেন:

docker run -v `pwd`/certs:/container/path/to/certs ...

পিছনের টিকটি নোট করুন pwdযা আপনাকে বর্তমান কার্যক্ষম ডিরেক্টরি দেয়। এটি ধরে নিয়েছে যে আপনার certsবর্তমান ডিরেক্টরিতে ফোল্ডার রয়েছে docker runযা কার্যকর করা হয়। স্থানীয় উন্নয়নের জন্য কিন্ডা দুর্দান্ত এবং আপনার প্রকল্পের জন্য শংসাপত্রগুলির ফোল্ডারটি দৃশ্যমান রাখুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.