آموزش پیکربندی SSL بر روی مجازی ساز داکر Docker Registry


آموزش تنظیمات گواهینامه دیجیتال سرتیفیکست بر روی مجازی ساز Virtualization & Cloud Technologies خدمت دوستداران مباحث مجای سازی. از سری بخش های آموزش دوره Getting Started with Docker ارائه می گردد.

پیکربندی SSL بر روی Docker Registry

همانطور که می دانید، Docker Nodeها جهت دسترسی به Docker Registery یا همان Registery Server از پروتکل HTTP استفاده می‌کنند، اما به منظور افزایش سطح امنیت در این دسترسی‌ها می‌توانیم از پروتکل HTTPS نیز با پیکربندی SSL استفاده نماییم. بنابراین در سناریو این بخش پیکربندی با استفاده از Apache httpd را نشان خواهیم داد. بنابراین مراحل زیر را به ترتیب پیگیری نمایید:

1. پیکربندی CA Server
ابتدا جهت ایجاد یک SSL Certificate می‌بایست یک سرور را در نقش CA سرور آماده نماییم و سپس بصورت زیر پیکربندی آن بپردازیم یا از همان سرور Docker Registery به عنوان CA Server استفاده نماییم. جهت پیکربندی SSL به منظور استفاده از ارتباطات رمزنگاری شده امن می‌بایست از Certificate‌ها استفاده نماییم. بنابرین، ابتدا به ایجاد Certificate و در ادامه به پیکربندی SSL خواهیم پرداخت:

ایجاد Certificate
شما می‌بایست از سایت‌های معتبری همچون Verisign یا سایت‌های مشابه یک Certificate معتبر خریداری نموده و استفاده نمایید و یا اینکه بصورت Self-Sign اقدام به ایجاد یک Certificate بر روی سرور CA (Certificate Authority) که می‌تواند همین سرور (منظور وب سرور Docker Registery) است یا سرور دیگری که بصورت انحصاری به آن اختصاص داده‌اید، استفاده کنید. با فرض اینکه با مفاهیم CA و Certificate بطور کامل آشنایی دارید، در این بخش صرفاً دستورات زیر را به به ترتیب اجرا نمایید:
# cd /etc/pki/tls/certs
# make server.key
# openssl rsa -in server.key -out server.key


# make server.csr

با اجرای دستور فوق یکسری سوال جهت ایجاد Certificate از شما پرسیده خواهد شد. همانند شکل زیر به سوالات پاسخ دهید.

در نهایت و پس از نصب و راه‌اندازی OpenSSL به عنوان CA Server، می‌توانید توسط دستور زیر به آن درخواست ایجاد Certificate نمایید:
# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

2.  در این مرحله می‌بایست اقدام به ایجاد یک دایرکتوری در زیر مسیر /etc/docker/certs.d بر روی هر یک از Docker Nodeهای خود با نامی که برای Common Name در هنگام ایجاد Certificateهایتان استفاده کرده‌اید نموده و سپس فایل "xxx.crt" بر روی Registery Server را به دایرکتوری مزبور انتقال دهید. در صورتیکه شما Certificateهایتان را بصورت Self-Sign ایجاد کرده‌‌اید، می‌توانید همچنین "ca-bundle.crt" نیز انتقال دهید. به عنوان مثال در node01 داریم:
# ll /etc/docker/certs.d/dlp.srv.world

سپس فایل پیکربندی docker را که در مسیر /etc/sysconfig قرار دارد توسط ویرایشگر متنی vi باز کرده:
# vi /etc/sysconfig/docker

و بعد با اضافه کردن علامت # به ابتدای خط 23 آن را به حالت Comment در آورید:
# INSECURE_REGISTRY='--insecure-registry dlp.srv.world:5000'

درنهایت فایل مذکور را ذخیره کرده و از آن خارج شوید. سپس توسط دستور زیر سرویس docker را جهت اعمال تغییرات و پیکربندی‌های انجام شده یکبار restart نمایید:
# systemctl restart docker

برای دریافت جدید ترین اخبار فناوری اطلاعات و آخرین خبرهای تکنولوژی و فناوری به کانال تلگرام گروه پال نت بپیوندید.