احراز هویت مبتنی بر گواهی 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 خود جایگزین کنید.