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

آموزش استفاده از گواهی self-signed برای ربات تلگرام

یکی از ساده ترین روش ها ( و کاملا رایگان !) برای بدست آوردن گواهی SSL استفاده از self-signed certification می باشد . در اصل در این روش ما خودمان گواهی را صادر می کنیم و یک فایل certification می سازیم .

زمان های عادی که کاربران با سایت مواجه می شوند عبارتی مانند https:// که روی آن یک خط هست را مشاهده می کنند که نشان می دهد در اصل ما کار خاصی برای ایمن کردن کانکشن انجام نداده اییم اما وقتی این کانکشن ایمن می شود که کاربر با استفاده از فایل certification با ما ارتباط بر قرار کند .

برای همین است که ما خودمان یک certification می سازیم و برای تلگرام ارسال می کنیم .

آماده کردن یک گواهی

این آموزش را ما در ubuntu server تست کرده ایم و بخاطر همین از کامند های ریپوزیتوری های اوبونتو استفاده می کنیم.

اولین کار این است که openssl را نصب کنید.

خوب حالا با کامند which openssl باید اطمینان پیدا کنید که نصب موفقیت آمیز بوده است .

هش ها برای تلگرام باید با الگوریتم rsa باشند و تلگرام فایل pem را قبول میکند . ما طبق آموزش خود سایت تلگرام از کامند زیر استفاده می کنیم .

خوب حالا باید دو فایل server_key.key و server_pub.pem ساخته شده اند که server_key.key فایل کلید ساخته شده و server_pub.pem فایل certification شما می باشد .

حالا باید فایل server_pub.pem را همراه آدرس سرور به تلگرام ارسال نماییم .

توجه کنید که کامند بالا را حتما در سرور اجرا کنید 🙂

پورت دلخواه را ما ۴۴۳ در نظر میگیریم که پورت استاندارد HTTPS هست . ( توجه کنید که تلگرام تنها یک سری پورت مشکل را قبول می کند )

خوب حالا همه چیز آماده است که ربات را آماده کنیم .

راه اندازی SSL در آپاچی

ابتدا باید یک سایت جدید در آپاچی بسازید .

ابتدا با استفاده از دستور زیر یک پوشه جدید بسازید که قرار است فایل های سایت جدید در آن قرار بگیرند .

پوشه html2 پوشه جدید ما است  ( همانطور که می دانید پوشه html پوشه پیشفرض ما است )

خوب حالا باید سایت جدید را در سایت های آپاچی تعریف کنیم .

به صورت پیشفرض سایت های آپاچی در اوبونتو در آدرس /etc/apache2/sites-available/ قرار دارند . سایت پیشفرض ۰۰۰-default.conf است که ما یک کپی از آن می سازیم :

فایل ssl.conf را با vim باز کنید :

اطلاعات آن را به شکل زیر ویرایش کنید :

توجه کنید که از path/to منظورمان آدرس دقیق فایل ها هست . برای مثال : /root/keys/server_pub.pem و … .

خوب توجه کنید ما از ماژول SSL استفاده می کنیم که اگر فعال نیست با کامند زیر فعال می شود .

خوب حالا تقریبا همه چیز آماده است . باید سایت خودمان را فعال کنیم.

برای این کار از دستور زیر استفاده کنید:

حالا باید apache را ری استارت کنید :

حالا آدرس سایت خود را با https باز کنید . ابتدا یک ارور می آید که گواهی معتبر نیست ( اول آموزش توضیح دادم ) . مهم نیست …  شما proceed anyway کنید .

شما آماده ی ساخت ربات بدون محدودیت هستید.

پیاده سازی گواهی در NodeJS

خود همانطور که می دانید در nodejs کار خیلی خیلی راحت تری داریم .

ما برای ساخت سرور به جای HTTP از HTTPS استفاده می کنیم .

تنها باید موقع سایت سرور ما یک آبجکت که اطلاعات certification هست را به آن بدهیم .

نمونه کد :

همانطور که می بینید در این کد من تنها فایل جدیدی در کنار فایل های certification ساخته ام و سرور را با دادن اطلاعات certification آغاز کرده ام .

یک فایل هم به نام output ساخته ام که اگر ربات درخواستی فرستاد متوجه شویم سرور کار می کند 🙂

خوب برای داشتن یک گواهی معتبر چه کار کنیم ؟

اگر مایل باشید در آموزش های آینده آموزش دریافت گواهی رایگان از StartSSL و پیاده سازی در آپاچی و NodeJS را قرار خواهیم داد .

 

 

 

بر چسب های پست : , , , , , , , , ,
مطالب مرتبط
شاید شما هم اینلاین کیبورت ( inline keyborad ) یا همون کی بورد های شیشه ایی را د ...
۰۲ تیر ۹۵
22 دیدگاه
شاید شما هم بخواهید از سرویس های فوق العاده و رایگان openshift استفاده کنید ولی ...
۱۳ خرداد ۹۵
22 دیدگاه
شاید شما هم مشکل reported as spammer را داشته باشید ! یک مشکل که گریوان گیر هر ک ...
۲۶ اردیبهشت ۹۵
2 دیدگاه
سلام دوستان امیدوارم حالتان خوب باشد . در قسمت قبلی ما با متد Long Polling آشنا ...
۱۰ اردیبهشت ۹۵
73 دیدگاه
8 دیدگاه برای “آموزش استفاده از گواهی self-signed برای ربات تلگرام”
  1. reza گفت:

    با سلام و احترام این روش رو تست کردین میشه تو لینوکس centos هم توضیح دهید
    من هر کار میکنم رو آپاچی جواب نمیده

    1. توی centos فقط مسیر ها فرق میکنه . لطفا تشریف بیارید تلگرام:@pp2007ws

  2. احسان گفت:

    سلام
    معتبر نبودن certification و فرضی بودن تمامی مشخصات مشکلی ایجاد نمیکنه?
    من همینطوری که میخوام برام توی سایتم علاوه بر خط قرمز روی https چند مرحله هم مرورگر و آنتی ویروس اخطار میدن (انگار قراره بمب منفجر بشه)
    حالا یعنی تلگرام بیخیاله

  3. احسان گفت:

    سلام
    معتبر نبودن certification و فرضی بودن تمامی مشخصات مشکلی ایجاد نمیکنه?
    من همینطوری که میخوام برام توی سایتم علاوه بر خط قرمز روی https چند مرحله هم مرورگر و آنتی ویروس اخطار میدن (انگار قراره بمب منفجر بشه)
    حالا یعنی تلگرام بیخیال این مشکله

  4. @joksta گفت:

    سلام میشه یه سرور ارزون برای ربات معرفی کنین

  5. سسس گفت:

    تیف بابا تیف …
    ویندوزشو توضیح بده
    اومده لینوکس میگه واسه ما

  6. وحید گفت:

    سلام
    من تمام کارهایی که تو آموزش گفته شد رو انجام دادم ولی وقتی getWebhookInfo رو اجرا میکنم جوابش اینه:
    {
    “ok”: true,
    “result”: {
    “url”: “https://site.com”,
    “has_custom_certificate”: true,
    “pending_update_count”: 1,
    “last_error_date”: 1476873690,
    “last_error_message”: “SSL error {336134278, error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed}”
    }
    }

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ورود به حساب کاربری
بستن این پنجره