تولید کلید های SSL/TLS

برنامه همدار برای داشتن یک ارتباط امن از TLS استفاده میکند. این ارتباط مربوط به ارتباط با پنل مدیریتی و ارتباط موبایل با سرور است.برای همین منظور نیاز است تا جفت کلیدهایی عمومی و خصوصی تولید شود تا در برنامه مورد استفاده قرار گیرد. تولید کلید میتواند به دو صورت manual و یا auto باشد.

  • manual (دستی)
    • در این روش کلیدها به صورت دستی و با ابزار معرفی شده تولید می شود و یا ممکن است کلیدها توسط ارایه دهنده ایی تهیه شده و در اختیار گذاشته شود
  • auto (خودکار)
    • در این روش که دریافت و امضا کلید به صورت اتومات توسط همدار صورت میگیرد ، کلیدها از اریه دهنده lets encrypt دریافت می شود.

توجه داشته باشید استفاده از حالت auto تنها در زمانی امکان دارد که سرور به اینترنت متصل است و دارای دامنه و ip معتبر قابل دسترس در شبکه باشد.

در ادامه به توضیح روش manual می پردازیم.در این روش ار ابزار step استفاده کرده و کلیدهای مناسب با سرور را تولید می کنیم. این روش مناسبترین روش برای استفاده در شبکه های داخلی و اختصاصی است.
در پوشه نصب همدار به مسیر زیر بروید tools -> step متحوایی مشابه تصویر زیر را خواهید دید.

key

  • فایل rishe-init.sh جهت تولید کلید ریشه (root ca) استفاده می شود.
  • فایل rishe-sign.sh جهت امضا و تعیین اعتبار به جفت کلید عمومی و خصوصی استفاده میشود
  • فایل service-init.sh جهت تولید جفت کلید خصوصی و عمومی برای سرور مورد استفاده قرار میگیرد.
  • محتویات پوشه data باید در جایی امن نگه داری شود چون برای استفاده های آینده لازم است
  • خروجی و فابل های مورد استفاده در سرور نیز پوشه output قرار میگیرد.

تولید کلید ریشه (root CA)

تولید کلید ریشه تنها یک بار صورت میگیرد و این کلید و رمز عبوری که برای آن قرار داده میشود باید در جایی امن نگه داری شود. در صورتی که تا کنون کلید ریشه را نساخته اید ابتدا فایل rishe-init.sh را اجرا کنید تا فایل کلید ریشه ساخته شود. فایل خروجی در پوشه data قرار میگیرد.(در هنگام اجرای این دستور از شما رمز عبور میخواهد که از یک رمز عبور دلخواه باید استفاده کنید ولی این رمز عبور را باید به خاطر بسپارید تا در مراحل بعد و آینده استفاده کنید)

sudo chmod a+x rishe-init.sh
./rishe-init.sh

تولید کلید مخصوص سرور

جهت تولید جفت کلید عمومی و خصوصی نیاز است تا کلید بر اساس دامنه یا IP مورد استفاده سرور تولید شود.(منظور اطلاعاتی که قرار است از آن طریق به سرور متصل شوید)
برای مثال میخواهیم سرور ما از طریق ادرس 192.168.1.40 قابل دسترس است و از این ادرس جهت دسترسی موبایل و پنل استفاده کنیم. که با استفاده از دستور san-- می‌توانید هر چند آدرس و دامنه وارد کنید تا کلید ساخته شده برای آن آدرس‌ها معتبر باشد.

sudo chmod a+x service-init.sh
./service-init.sh --san 192.168.1.40

با اجرای این دستور کلیدهای مورد نیاز تولید شده و در پوشه data ذخیره میشود.

امضای کلید سرور با استفاده از کلید ریشه

کلید تولید شده در قسمت قبل به تنهایی قابل استفاده نیست به همین منظور باید کلید تولید شده توسط کلید ریشه امضا و تعیین اعتبار شود.برای این منظور تنها لازم است تا فایل rishe-sign.sh اجرا شود.

sudo chmod a+x rishe-sgin.sh
./rishe-sign.sh

با اجرای این دستور کلیدهای تولید شده در مرحله قبل با استفاده از کلید ریشه امضا میوشد.

توجه داشته باشید در این مرحله جهت امضا کلید سرور رمز کلید ریشه از شما در خواست می شود.

با گذشت تمام مراحل بالا عمل تولید و امضا کلید به پایان میرسد و تمام کلیدهای مورد نیاز در پوشه output قرار می گیرد.

key

همان طور که در تصویر مشاهده می کنید سه کلید تولید شده است که دو کلید server.crt و server.key جهت قرار استفاده در سرور و کلید root_ca.crt جهت استفاده در موبایل و برنامه فعالساز و مرورگرها مورد استفاده قرار میگرد.

محل انتقال کلیدهای server.crt و server.key پوشه /opt/hmdr/hamdar/keys/ می باشد که این مسیر برای نسخه های قبل از 3.1.0 مسیر /home/storage/hamdar/keys/ می باشد.

توجه داشته باشید عمل تولید کلید به پایان رسیده و کلیدهای مورد نیاز تولید شده است. تنها مرحله باقی مانده انتقال کلید به مسیرها و محل های مشخص شده است.