HTTP از طریق SSL
ThingsBoard امکان اجرای یک سرور HTTP را فراهم میکند که رابط کاربری وب را میزبانی کرده و تماسهای REST API را از طریق SSL ارائه میدهد.
بیشتر محیطهای ThingsBoard از بارتابان را به عنوان نقطه پایان برای اتصال SSL بین مشتری و پلتفرم استفاده میکنند. به عبارت دیگر، ترافیک اینترنتی بین مرورگر کاربر و بارتابان رمزنگاری میشود، اما بین بارتابان و سرویسهای پلتفرم بازگشایی میشود. مزیت این گزینهها تنظیمات ساده است. بیشتر بارتابانهای ابری (AWS، Google Cloud و غیره) ابزارهای تولید گواهی دیجیتال داخلی دارند و مستندات غنی برای تنظیمات SSL را ارائه میکنند.
با این حال، میتوان ThingsBoard را به گونهای تنظیم کرد که SSL را فعال کند و از خاتمه دادن SSL در بارتابان خودداری کند. ما توصیه میکنیم از گواهیهای SSL معتبر تولید شده با استفاده از مراجع CA قابل اعتماد استفاده کنید و وقت خود را برای حل مشکلات مربوط به گواهیهای خودامضا صرفهجویی کنید. در زیر دستورالعملهایی را برای تنظیم SSL برای گواهیهای ذخیره شده به صورت فرمت PEM یا Java Keystore مشاهده کنید.
پیکربندی SSL با استفاده از فایل گواهی PEM
از نسخه TB 3.3.2 موجود است
برای تنظیم متغیرهای محیطی زیر از طریق فایل پیکربندی، داکر کامپوز یا اسکریپتهای کوبرنتیز، عمل کنید. برای مثال، از فایل thingsboard.conf استفاده میکنیم:
... export SSL_ENABLED=true export SSL_CREDENTIALS_TYPE=PEM export SSL_PEM_CERT=server.pem export SSL_PEM_KEY=server_key.pem export SSL_PEM_KEY_PASSWORD=secret ...
جایی که:
- SSL_ENABLED – فعال یا غیرفعال کردن پشتیبانی از SSL؛
- SSL_CREDENTIALS_TYPE – نوع مجوزهای سرور. PEM – پرونده گواهی PEM؛ KEYSTORE – فایل keystore جاوا؛
- SSL_PEM_CERT – مسیر فایل گواهی سرور. حاوی گواهی سرور یا زنجیره گواهی، ممکن است شامل کلید خصوصی سرور نیز باشد؛
- SSL_PEM_KEY – مسیر فایل کلید خصوصی گواهی سرور. به طور پیش فرض اختیاری است. در صورت عدم وجود کلید خصوصی در فایل گواهی سرور، لازم است؛
- SSL_PEM_KEY_PASSWORD – گذرواژه اختیاری کلید خصوصی گواهی سرور.
پس از تکمیل نصب، سرور Thingsconnect را راهاندازی یا مجدداً راهاندازی کنید.
تولید گواهینامه های خودامضا
از دستورالعمل های زیر برای تولید فایل های گواهی خود استفاده کنید. برای آزمایش مفید است، اما زمان بر است و برای تولید توصیه نمی شود.
فایل گواهی PEM
توجه: این مرحله به سیستم عامل لینوکس با نصب openssl نیاز دارد.
برای تولید یک گواهینامه PEM و کلید خصوصی با امضای خود سرور، از دستور زیر استفاده کنید:
openssl ecparam -out server_key.pem -name secp256r1 -genkey openssl req -new -key server_key.pem -x509 -nodes -days 365 -out server.pem
اگر نمیخواهید از کلید خصوصی خود با یک عبارت عبور محافظت کنید، میتوانید گرههای – (مخفف بدون DES) را نیز اضافه کنید. در غیر این صورت، رمز عبور حداقل 4 کاراکتری را از شما می خواهد.
پارامتر روز (365) را می توانید با هر عددی جایگزین کنید تا بر تاریخ انقضا تأثیر بگذارد. سپس مواردی مانند “Country Name” را از شما درخواست می کند، اما شما فقط می توانید Enter را بزنید و پیش فرض ها را بپذیرید.
-subj “/CN=localhost” را برای سرکوب سوالات در مورد محتوای گواهی اضافه کنید (Localhost را با دامنه مورد نظر خود جایگزین کنید).
گواهینامه های خودامضا شده با هیچ شخص ثالثی تأیید نمی شوند مگر اینکه قبلاً آنها را به مرورگرها وارد کرده باشید. اگر به امنیت بیشتری نیاز دارید، باید از گواهی امضا شده توسط یک مرجع گواهی (CA) استفاده کنید.