در صورتی که نرم افزار شما قابلیت استفاده از گواهی SSL دارد و یا نیاز دارید که برروی سایت خود که از طریق HAproxy مدیریت می شود، SSL نصب نمایید می توانید این آموزش را دنبال کنید.
به صورت ساده و رایج بدون در نظر گرفتن Haproxy ، می توان SSL را به راحتی با روش های مرسوم در سایت خود نصب کرد که اغلب خیلی راحت از طریق کنترل پنل مثل دایرکت ادمین و سی پنل انجام می شود. بطور رایج در این حالت درخواست های SSL یک کاربر در همان سرور، رمزگشایی و رمزنگاری می شود، اما در حالتی که Haproxy نقش balance درخواست ها را دارد این موضوع به این شکل نیست. در این حالت دو روش وجود دارد که در ادمه به آن ها می پردازیم.
SSL Termination
در این روش درخواست ها در سرور Haproxy که کار load balance را برعهده دارد terminate می شوند، به عبارتی رمز گشایی شده و پس از آن درخواست ها به صورت رمزنگاری نشده به سرور های Backend ارجاع داده می شود. این بدان معنی است که load balancer وظیفه رمزگشایی یک ssl connection را دارد که در مقابل یک درخواست بدون SSL ، کند تر و نیاز به صرف زمان بیشتری برای پردازش توسط CPU دارد.
از معایب این روش رمزنگاری نبودن اطلاعات بین Haproxy و سرور های Backend می باشد.
SSL Pass-Through
همان طور که از نامش پیدا است درخواست ها در این روش به صورت مستقیم به سرور های Backend پاس داده می شوند که بر خلاف روش اول می باشد.
در این روش Connections SSL بروی سرور های backend توزیع می شوند و هر درخواست به یک سرور ختم می شود که مصرف و بار CPU نیز کاهش می یابد، گرچه در این روش شما به دلیل encrypt بودن درخواست ها امکان ویرایش و اضافه کردن header های http را نخواهید داشت، که از معایب آن عدم نمایش IP کاربران در لاگ وب سرور می باشد.
روش سومی نیز هست که ترکیبی از این دو روش می باشد و مفهوم مشابهی دارد، که Connections SSL بروی Load Balancer رمز گشایی می شوند و تغییراتی که می توان تغییراتی بروی header های http ایجاد کرد و مجدد آنها را رمز نگاری کرد و در نهایت به سرور های Backend ارسال شوند، در این روش معایب دو روش بالا را نخواهیم داشت اما بار زیادی به CPU سرور ها اضافه می شود که ممکن است باعث بوجود آمدن bottleneck شود، البته تنظیمات این روش کمی پیچیده می باشد.
در این مقاله تنها به روش اول پرداخته شده است.
بیشتر بخوانید: HAProxy چیست؟ آشنایی با لود بالانسر قوی سرورها
HAproxy با SSL Termination
روشی که بیشتر مورد استفاده عموم می باشد SSL Termination است که ما نیز ابتدا به آن می پردازیم، در این صورت گواهی SSL بروی سرور Load balancer نصب می شود.
در این روش از شرکت certum برای sign کردن CSR ( Certificate Signing Request ) تولیدی استفاده خواهیم کرد.
ابتدا پوشه ای دلخواه در مسیر /etc/ssl/ ایجاد نمایید، می توانید نام سایت را قرار دهید
mkdir /etc/ssl/sitessl/
ساخت یک کلید خصوصی
openssl genrsa -out /etc/ssl/sitessl/ssl.key 2048
ساخت یک درخواست
openssl req -new -key /etc/ssl/sitessl/ssl.key -out /etc/ssl/sitessl/ssl.csr
پس از ایجاد فایل csr ، آنرا به مرکز ثبت ssl می دهیم و آنها به شما چند فایل میدهند که لازم است آنهارا با هم ادقام نمایید.
cat site _com.crt ssl.key site_com.ca-bundle > sitessl.pam
سپس در تنظیمات haproxy.cfg موارد زیر را اضافه کنید:
Vi /etc/haproxy/haproxy.cfg listen ha-www-https bind 0.0.0.0:443 ssl crt /etc/ssl/sitessl/ sitessl.pam mode http stats enable redirect scheme https if !{ ssl_fc } server app-www-1 192.168.1.4:80 check server app-www-2 192.168.1.5:80 check
موارد بالا تنها Option های مرتبط با SSL می باشد موارد دیگر را می توانید اضافه کنید.
دقت نمایید directive خط پنجم برای redirect کردن درخواست ها به https می باشد.
در صورتی که نیاز به مشاوره بیشتر در این زمینه داشتید با بخش پشتیبانی ایران سرور تماس حاصل نمایید.
۰۵۱۳۱۷۷۶-۹۰۲
همینطور جهت خرید و فعالسازی SSL می توانید با بخش فروش ایران سرور تماس حاصل کنید.
۰۵۱۳۱۷۷۶-۹۰۱
برگرفته از [serversforhackers.com]