دستگاه جاسازی شده ای وجود دارد که باید از طریق HTTPS و MQTTS به سرور متصل شود. یک گواهینامه سرور توسط یک مرکز قابل اعتماد صادر می شود (برای مثال بیایید رمزگذاری شود). اما در تأیید گواهینامه سرور از طرف مشتری مشکلی وجود دارد زیرا دستگاه از CA قابل اعتماد خبر ندارد.

بنابراین من چند گزینه دارم:

  1. یک ریشه DST Root CA X3 بگذارید. گواهی (LE root گواهینامه) را وارد دستگاه کرده و در برابر آن بررسی کنید ؛

  2. یک گواهی ریشه ای خود امضا کرده و آن را داخل دستگاه قرار دهید ؛

  3. پین کردن کلید عمومی.

رویکرد اول کار نمی کند زیرا DST Root CA X3 سال آینده منقضی می شود. علاوه بر این ، بیایید رمزگذاری کنیم ممکن است گواهینامه اصلی آنها را در هر زمان تغییر دهد و ما نمی توانیم تضمین کنیم که گواهینامه های تازه صادر شده توسط همان شخص امضا می شوند.

راه دوم باعث می شود که سرور HTTPS من برای سایر مشتریها مانند مرورگرهای وب قابل اعتماد نباشد. [19659002] در مورد استفاده از چندین گواهینامه به طور همزمان چیست؟ آیا امکان دارد؟ اگر اشتباه نکنم سرور Nginx از آن پشتیبانی می کند ، اما من مطمئن نیستم که به روشی که حدس می زنم کار می کند: اگر اولین گواهی (مثلاً تأیید رمزگذاری) تأیید نشود که یک سرور موفق به دریافت یک گواهی نامه برگشت (مثلاً خود امضا شده) شود. مشتری. حتی اگر اینگونه نباشد ، همه سرورها از این پشتیبانی می کنند.

راه سوم این است که سرور من هش کلید عمومی را در سیستم عامل قرار دهم. در این حالت من می توانم در آینده از هر CA استفاده کنم (آیا من درست است؟). تنها چیزی که باید در مورد آن مراقب باشم این است که همیشه هنگام تولید CSR از همان کلید استفاده کنید.

کدام راه بهتر است؟ یا راه حل دیگری برای مشکل من وجود دارد؟