احراز هویت مبتنی بر گواهی X.509 برای CoAP از طریق DTLS

گواهی‌نامه‌های X.509 برای برقراری احراز هویت دوطرفه (دو طرفه) برای CoAP بر روی DTLS استفاده می‌شود. این روش شباهتی به احراز هویت با استفاده از توکن دسترسی دارد، اما به جای توکن، از گواهی‌نامه X.509 استفاده می‌کند.

دستورات زیر توضیح می‌دهد چگونه با استفاده از گواهی‌نامه X.509، اتصال مشتری CoAP را به ThingsBoard Cloud برقرار کنید.

مرحله ۱. تولید گواهی‌نامه مشتری

از دستور زیر برای تولید کلید خصوصی مبتنی بر EC و گواهی‌نامه x509 ایجاد خود امضا شده استفاده کنید. این دستور بر اساس ابزار openssl است که احتمالاً در کامپیوتر کاری شما نصب شده است:

openssl ecparam -out key.pem -name secp256r1 -genkey
openssl req -new -key key.pem -x509 -nodes -days 365 -out cert.pem

خروجی این دستور یک فایل کلید خصوصی با نام key.pem و یک گواهی عمومی با نام cert.pem خواهد بود. در مراحل بعدی از آن‌ها استفاده خواهیم کرد.

مرحله ۲. تأمین کلید عمومی مشتری به عنوان اعتبارهای دستگاه

به صفحه وب ThingsBoard بروید -> دستگاه‌ها -> دستگاه شما -> اعتبارهای دستگاه.

اعتبارهای دستگاه X.509 Certificate را انتخاب کرده، محتوای فایل cert.pem را درج کرده و روی دکمه ذخیره کلیک کنید. به طور جایگزین، همین کار از طریق رابط برنامه‌نویسی REST قابل انجام است.

مرحله ۳. اتصال مشتری DTLS CoAP با استفاده از گواهی‌نامه X.509

با دنبال کردن مراحل زیر، مشتری CoAP با پشتیبانی از DTLS را در لینوکس نصب کنید:

مرحله ۱: کلون کردن مخزن libcoap:

git clone https://github.com/obgm/libcoap --recursive

مرحله 2: به دایرکتوری libcoap بروید:

cd libcoap

مرحله 3: دستورات بعدی را اجرا کنید و سپس اسکریپت ./autogen.sh را اجرا کنید:

sudo apt-get update
sudo apt-get install autoconf libtool libssl-dev
./autogen.sh

مرحله 4: اسکریپت ./configure را با گزینه های بعدی اجرا کنید:

./configure --with-openssl --disable-doxygen --disable-manpages --disable-shared

مرحله 5: دستور بعدی را اجرا کنید:

make

مرحله 6: دستور بعدی را اجرا کنید:

sudo make install

در نهایت، اسکریپت مثال زیر را برای اعتبارسنجی DTLS با X.509 Certificate اجرا کنید و برای به‌روزرسانی ویژگی‌های مشترک مشترک شوید: مثال coap-client زیر نحوه اتصال به ThingsBoard Cloud یا هر سرور ThingsBoard CoAP دیگری که گواهی معتبر و قابل اعتماد دارد را نشان می‌دهد.

coap-client-openssl -v 9 -c cert.pem  -j key.pem -m POST \
-t "application/json" -e '{"temperature":43}' coaps://coap.thingsboard.cloud/api/v1/telemetry

فراموش نکنید که coap.thingsboard.cloud را با میزبان نمونه ThingsBoard خود جایگزین کنید.

عناوین هر بخش