با افزونه رایگان Lets Encrypt، دسترسی از راه دور ایمن را به سرور Home Assistant خود فعال کنید.
نرم افزار منبع باز Home Assistant که برای سیستم های Windows، macOS و Linux (از جمله Raspberry Pi) موجود است، به عنوان یک مرکز مرکزی برای کنترل همه دستگاه های هوشمند شما برای تمام نیازهای اتوماسیون خانگی شما عمل می کند.
اگر می خواهید از راه دور به سرور Home Assistant خود دسترسی داشته باشید، چه با استفاده از DDNS یا Cloudflare Tunnel، باید منبع را با یک گواهی SSL/TLS رمزگذاری کنید. خوشبختانه، میتوانید از افزونه رایگان Lets Encrypt برای تولید و پیکربندی گواهی SSL/TLS در Home Assistant و اضافه کردن آن به سرور خود استفاده کنید.
روشهای نصب گواهی SSL/TLS در Home Assistant
Let’s Encrypt یک راه محبوب برای راه اندازی SSL/TLS رایگان در وب سایت ها است. همچنین میتوانیم از Let’s Encrypt برای ایمن کردن سرور Home Assistant خود با پیروی از یکی از روشهای زیر استفاده کنیم:
- چالش HTTP: در این روش از سرویس رایگان DDNS استفاده می کنید و پورت فورواردینگ (پورت 80) را روی روتر خود تنظیم می کنید.
- چالش DNS: در این روش شما یک دامنه رایگان یا پولی ثبت می کنید و از یک تونل امن Cloudflare استفاده می کنید. شما نیازی به باز کردن هیچ پورتی روی روتر خود ندارید و در نتیجه ایمن تر است.
علاوه بر این، روش چالش HTTP بسیار طولانی تر و پیچیده تر است. روش چالش DNS با یک تونل Cloudflare ایمن برای دنبال کردن و استقرار آسان تر است.
بنابراین، برای این راهنما، از Cloudflare و Let’s Encrypt برای ایمن کردن نمونه Home Assistant خود و دسترسی به آن از راه دور از طریق اتصال HTTPS استفاده می کنیم. با این حال، اگر همچنان میخواهید از روش DDNS استفاده کنید، راهنمای رسمی Home Assistant را دنبال کنید.
پیش نیازهای تولید SSL
برای راه اندازی و استقرار گواهی SSL در Home Assistant با استفاده از روش چالش DNS برای دسترسی ایمن، به موارد زیر نیاز دارید:
- یک حساب کاربری Cloudflare
- یک نام دامنه ثبت شده می توانید یک دامنه رایگان از Freenom.com دریافت کنید یا یک دامنه جدید در هر ارائه دهنده خدمات مانند GoDaddy ثبت کنید.
پس از ثبت دامنه، آن را به حساب Cloudflare خود اضافه کنید و گزینه HTTPS را در تنظیمات SSL/TLS در Cloudflare فعال کنید.
در حال حاضر، Flexible را انتخاب کنید. هنگامی که گواهی SSL را با استفاده از Let’s Encrypt بر روی سرور Home Assistant ما مستقر کردید، می توانید گزینه Full را برای رمزگذاری انتها به انتها فعال کنید.
پس از فعال کردن گزینه HTTPS، مراحل بعدی را برای نصب Let’s Encrypt و استقرار گواهی SSL در سرور ادامه دهید.
تونل Cloudflare را مستقر کنید
با استقرار Cloudflare Tunnel، می توانید از راه دور از طریق HTTPS به سرور Home Assistant دسترسی داشته باشید. همچنین، این به تکمیل چالش DNS برای نصب گواهیهای SSL در سرور Home Assistant کمک میکند. مراحل به شرح زیر است:
- از پیوند افزونه Cloudflare دیدن کنید و روی Open Link کلیک کنید.
- برای افزودن مخزن Cloudflare به سرور Home Assistant خود روی Add کلیک کنید.
- اکنون جستجو کنید و بر روی افزونه Cloudflare کلیک کنید.
- روی Install کلیک کنید. صبر کنید تا نصب کامل شود.
- پس از نصب افزونه Cloudflare، روی تب Configuration کلیک کنید.
- روی سه نقطه در بالا سمت راست کلیک کنید و کد زیر را اضافه کنید.additional_hosts: – نام میزبان: سرویس YourDomainName.com: http://HomeAssistantIPAddress:8123external_hostname: YourDomainName.com tunnel_name: homeassistant tunnel_token_token::proxsefuginx warp_enable: warp_routes واقعی: – 192.168.0.2/24
- روی ذخیره کلیک کنید.
- همچنین کد زیر را به فایل configuration.yaml اضافه کنید.http: use_x_forwarded_for: true trusted_proxies: – 172.30.33.0/24
- سرور Home Assistant را ذخیره و راه اندازی مجدد کنید.
- پس از راه اندازی مجدد، افزونه Cloudflared را راه اندازی کنید و گزینه Start on boot را برای این افزونه فعال کنید.
- برگه Log را در صفحه افزونه Cloudflared باز کنید و URL وب نمایش داده شده را در مرورگر وب خود کپی کنید. با این کار صفحه Cloudflare باز می شود.
- با استفاده از حساب ایمیل ثبت شده خود وارد Cloudflare شوید و سپس نام دامنه را انتخاب کنید.
- روی Authorize کلیک کنید.
- به بخش Log افزونه Home Assistant Cloudflared خود برگردید و بررسی کنید که آیا احراز هویت موفقیت آمیز است یا خیر. اگر چنین است، یک تونل امن برای افشای سرور دستیار خانگی شما در اینترنت از طریق HTTPS ایجاد می کند. با این حال، هنوز رمزگذاری انتها به انتها نیست.
additional_hosts:
- hostname: YourDomainName.com
service: http://HomeAssistantIPAddress:8123
external_hostname: YourDomainName.com
tunnel_name: homeassistant
tunnel_token: ""
nginx_proxy_manager: false
log_level: debug
warp_enable: true
warp_routes:
- 192.168.0.2/24
http:
use_x_forwarded_for: true
trusted_proxies: - 172.30.33.0/24
کلید Cloudflare API را دریافت کنید
برای تکمیل چالش DNS مورد نیاز برای استقرار گواهی SSL/TLS در سرور Home Assistant خود به Cloudflare API نیاز دارید. مراحل به شرح زیر است:
- وارد حساب کاربری Cloudflare خود شوید و به صفحه https://dash.cloudflare.com/profile بروید.
- روی API Tokens کلیک کنید.
- روی Create API token کلیک کنید و سپس روی دکمه Use Template در کنار گزینه Edit zone DNS کلیک کنید.
- گزینه Specific Zone را انتخاب کنید و سپس نام دامنه خود را از قسمت کشویی زیر قسمت Zone Resources انتخاب کنید.
- روی Continue to summary کلیک کنید و سپس روی Create Token کلیک کنید.
- کد API ایجاد شده را کپی کنید و آن را ایمن نگه دارید. در طول پیکربندی Let’s Encrypt به آن نیاز خواهید داشت.
افزونه Let’s Encrypt را نصب کنید
در سرور Home Assistant خود، این مراحل را برای نصب افزونه Let’s Encrypt دنبال کنید.
- به Settings > Add-ons بروید.
- روی دکمه ADD-ON STORE کلیک کنید.
- letsencrypt را جستجو کرده و روی آن کلیک کنید.
- بر روی دکمه INSTALL کلیک کنید.
- هنوز افزونه را شروع نکنید.
Let’s Encrypt را پیکربندی کنید
برای نصب گواهی روی سرور باید جزئیات دامنه و Cloudflare API را در فایل پیکربندی Let’s Encrypt اضافه کنید. برای این کار مراحل زیر را دنبال کنید:
- در صفحه پیکربندی Let’s Encrypt، روی تب Configuration کلیک کنید.
- روی سه نقطه در بالا سمت راست کلیک کنید و Edit in YAML را انتخاب کنید.
- در قسمت Options کد زیر را قرار دهید. مطمئن شوید که نام دامنه خود را جایگزین YourDomainName.com کنید. همچنین، شناسه ایمیل، ایمیل Cloudflare و نشانه API را ویرایش کنید (اینها را در مراحل قبلی ایجاد کردهاید، بنابراین آنها را در اینجا جایگذاری کنید). فایل گواهی pem: چالش fullchain.pem: dns dns: ارائه دهنده: dns-cloudflare cloudflare_email: Your.CloudflareEmail@gmail.com cloudflare_api_token: YWrT6HXwMn5hHYKor6B
- روی ذخیره کلیک کنید.
domains: -
"*.YourDomainName.com"
email: Your.Email@gmail.com
keyfile: privkey.pem
certfile: fullchain.pem
challenge: dns
dns:
provider: dns-cloudflare
cloudflare_email: Your.CloudflareEmail@gmail.com
cloudflare_api_token: YWrT6HXwMn5hHYKor6B
گواهی SSL/TLS را تولید کنید
پس از ذخیره اطلاعات، به برگه اطلاعات افزونه Let’s Encrypt در سرور Home Assistant خود بروید و روی Start کلیک کنید.
با این کار افزونه Let’s Encrypt شروع می شود، که از اطلاعات ارائه شده توسط شما در فایل پیکربندی برای تکمیل چالش DNS و نصب گواهی SSL/TLS مورد نیاز بر روی سرور Home Assistant شما استفاده می کند.
تکمیل این کار مدتی طول می کشد. ما اکیداً توصیه می کنیم که روی برگه Log کلیک کنید و مراقب گزارش ها باشید (به تازه سازی ادامه دهید). اگر خطایی وجود دارد، مانند API یا اعتبارنامههای نامعتبر، میتوانید آن را برطرف کنید و افزونه Let’s Encrypt را دوباره شروع کنید تا نصب گواهی SSL/TLS در سرور Home Assistant به پایان برسد.
اگر همه چیز خوب پیش برود، گواهی ها تولید و نصب می شوند. گواهی رایگان به مدت سه ماه اعتبار خواهد داشت. پس از سه ماه یا درست قبل از پایان ماه سوم، میتوانید افزونه Let’s Encrypt را دوباره برای تمدید گواهیها راهاندازی کنید.
در این مرحله می توانید وارد حساب کاربری Cloudflare خود شوید و حالت Full را تحت SSL/TLS برای رمزگذاری انتها به انتها روشن کنید.
تبریک می گویم! شما با موفقیت گواهی SSL/TLS را روی سرور Home Assistant خود تولید و نصب کرده اید.
SSL رایگان و دسترسی از راه دور
با این راهنمای دقیق در مورد تنظیم گواهیهای SSL/TLS در سرور Home Assistant، هر کسی میتواند به سرعت گواهیها را تنظیم و نصب کند و نمونه سرور Home Assistant خود را ایمن کند. با Cloudflare Tunnel، نمونه Home Assistant شما نیز رمزگذاری شده است. این همچنین به شما امکان میدهد به سرور Home Assistant و همه دستگاهها و سرورهای محلی خود از هر کجای دنیا دسترسی داشته باشید.