وقتی Docker و SSL دستبهگریبان میشن
توی دنیای واقعیِ سرورها و میکروسرویسها، ارتباط امن با HTTPS و TLS حرف اول رو میزنه. تو یکی از پروژهها، تیم Luca Baggi با یه خطای عجیب توی محیط Production روبهرو شد:
برنامه نمیتونست با یه سرویس خارجی از طریق HTTPS و mTLS ارتباط برقرار کنه و خطای TLS Handshake Failure میداد. یعنی ارتباط امن از همون اول شکست میخورد.
مشکل چی بود؟
وقتی تیم فنی توی محیط لوکال تست گرفت، با دستور openssl خیلی راحت تونست به سرور وصل بشه.
این یعنی:
کلاینت سالم بود و گواهیها درست بودن اما به محض اینکه برنامه داخل Docker اجرا میشد اون هم با Distroless ایمیج، اتصال امن کلاً fail میشد.
راهحل؟
در عین سادگی، خیلی مهم بود:
۱. اضافه کردن Root CA موردنیاز به لیست ca-certificates
۲. ساختن یه Docker ایمیج جدید تا گواهی بهعنوان گواهی قابل اعتماد شناخته بشه
بهطور کلی:
گواهیها از ایمیج Distroless اصلی برداشته شدن
داخل یه Debian Slim ایمیج قرار گرفتن
و اونجا با openssl تست گرفتن تا مطمئن بشن همهچیز درسته
گاهی مشکل TLS اصلاً از خود TLS نیست، از یه Root CA جاافتاده توی ایمیجه.
منبع
@NobarCloud ☁️

2
2December 16, 2025 538 3