آموزش ساخت سرور HTTPS با Self-Signed Certificate رایگان در Express



visibility  
mode_comment   ۲

آموزش ساخت سرور HTTPS با Self-Signed Certificate رایگان در Express

در این مطلب یاد می‌گیرید که با استفاده از Self-signed certificate رایگان یک سرور HTTPS رو در Express راه‌اندازی کنید تا بتونید بر روی Local بتونین به راحتی HTTPS رو تست کنید.

برای اینکه بر روی لوکال بتونین HTTPS رو تست کنید یک گواهینامه Self-signed کافی هست. اگرچه مرورگر متوجه میشه که شما دارید از Self-signed استفاده میکنید و مرورگر با اون مثل یک گواهینامه معتبر برخورد نمیکنه ولی برای محیط Development و تست خیلی خوب هست و همه نیازها رو برطرف میکنه.

خب برای اینکه بتونیم این گواهینامه رو بسازیم، باید در ابتدا openssl رو بر روی سیستم خودمون نصب کنیم. اگر شما git for windows رو نصب کرده باشید، openssl هم بصورت اتوماتیک در مسیر C:\Program Files\Git\usr\bin نصب میشه و شما میتونین از اون استفاده کنید.

شما همچنین میتونین این ابزار رو بصورت جداگانه و مستقل بر روی سیستم خودتون نصب کنید. برای اینکار میتونین این آموزش رو ببینید.

بعد از اینکه openssl رو نصب کردید، باید کار با express رو شروع کنیم.

برای اینکار در ابتدا یک پوشه با نام https-server در desktop به وجود میارم و در command line دستور npm init -y رو اجرا میکنم تا package.json به سرعت برای من ساخته بشه. خب حالا به سادگی دستور npm install express --save رو اجرا کنید تا express نصب بشه و همچنین در dependencies قرار بگیره. بعد از اینکه express با موفقیت نصب شد، package.json بصورت زیر میشه:

حالا برای اینکه یک گواهینامه self-signed با استفاده از openssl به وجود بیارم، باید در command line دستور زیر رو اجرا کنم:

با اینکار چند سوال از شما پرسیده میشه و شما میتونین یکی یکی به اونا جواب داده و enter بزنید. بصورت زیر:

با پایان این دستور 2 فایل جدید در پوشه https-server ساخته شده است:

هر 2 فایل برای ساخت یک سرور https نیاز هست.

متخصص وردپرس
قالب ها و پلاگین های حرفه ای وردپرس رو خودت بنویس! بازار طراحی قالب و پلاگین نویسی وردپرس به شدت داغه و اگر بلد باشید با برنامه نویسی اختصاصی، قالب ها و پلاگین های دلخواه بنویسید تو مارکت های مطرح دنیا و یا از طریق فریلنسری می تونید به درآمد بالا برید. دوره متخصص وردپرس سون لرن رو حتما ببینید: متخصص وردپرس arrow_back
  • server.cert : فایل گواهینامه self-signed هست.
  • server.key : این فایل کلید خصوصی یا private مربوط به گواهینامه یا Certificate هست.

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

یک فایل بنام server.js میسازیم و کدهای زیر رو درون اون قرار میدم:

میبینید که در ابتدا ماژولهای https و express رو وارد پروژه کردیم و express رو فراخوانی کردیم و اون رو در متغیر app قرار دادیم.

با استفاده از app.get یک مسیر یا route از نوع GET برای / یا ریشه سایت قرار دادیم و در اون متن ساده Hello HTTPS رو برای کلاینت ارسال کردیم.

در نهایت در خط 10 متد createServer از ماژول https رو فراخوانی کردیم و app رو به اون پاس دادیم و پورتی که سرور بر روی اون بالا میاد رو 3000 قرار دادیم. یک callback هم قرار دادیم تا زمانی که سرور با موفقیت بالا اومد در console متن Listening... نوشته بشه و متوجه بشیم که الان سرور بالا هست و میتونیم در مرورگر یا هر جای دیگه به اون دسترسی داشته باشیم.

خب تا اینجای کار اصلا از گواهینامه‌ای که به وجود آوردیم استفاده نکردیم. برای اینکار کدها رو بصورت زیر تغییر میدیم:

همونطور که دیدید ماژول fs یا file system رو به وارد کردیم و دو ویژگی key و cert رو برای متد createServer تعریف کردیم. با استفاده از متد readFileSync دو فایلی که در مراحل قبل ساخته بودیم رو خوندیم و از اونا استفاده کردیم. به همین راحتی.

حالا اگر در command line دستور node server.js رو اجرا کنید، بصورت زیر خواهد بود:

همونطور که میبینید Listening نوشته شده و به این معنا هست که سرور بالا هست و میتونین به اون دسترسی داشته باشید. حالا باید آدرس https://localhost:3000 رو درون مرورگر تایپ کرده و enter بزنید. با اینکار صفحه‌ای بصورت زیر باز میشه:

من چون بر روی سیستم خودم آنتی‌ویروس Kaspersky دارم، این صفحه برای من به این صورت نشون داده میشه، شاید چیزی که شما ببینید با این تفاوت داشته باشه ولی همه اونا یک مفهوم رو میرسونن و یک لینک یا دکمه دارند که با استفاده از اون میتونین بیخیالش بشید و ادامه بدید و وارد آدرس مورد نظرتون بشید.

برای اینکه بتونیم محتویات آدرس مورد نظر رو ببینم، بر روی لینک مشخص شده در تصویر بالا کلیک میکنم. حالا مرورگر بصورت زیر خواهد بود:

همونطور که مشاهده میکنید، آیکون مربوط به امن بودن connection قرار داده شده و اگر بر روی اون کلیک کنید، میتونین اطلاعاتی در مورد اون کسب کنید. همچنین متن Hello HTTPS که از سرور برای کلاینت ارسال شده بود رو در مرورگر مشاهده کردیم.

دیدید که چقدر راحت میشه یک سرور  https رو در Express به وجود بیاریم. این سرور secure برای تست و محیط Development خیلی عالی هست و نیازهای شما رو برطرف میکنه.

نتیجه گیری

در این مطلب با استفاده از express و گواهینامه‌ Self-signed ساخته شده با openssl، یک سرور https رو به وجود آوردیم و از اون استفاده کردیم.

comment دیدگاه کاربران
Ali Reza

با تشکر از سایت خوبتون

محمد اسفندیاری

موفق باشید دوست عزیز

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.