مشکل HTTPS با ماژول m65

سلام برای HTTPGET به سرور که HTTPS هست مشکل دارم. این ماژول از HTTPS پشتیبانی می کنه؟
چطور میتونم SSL را فعال کنم؟ تشکر

سلام برادر
داخل Product Specifications مربوط به m65 بخش Software Features نوشته که از پروتکل HTTPS پشتیبانی میکنه.
اگر به سایت شرکت quectel بری و ثبت نام کنی و بعد اسم ماژول رو سرچ کنی میتونی به دیتاشیت ها و بقیه مواردی که میتونه کمکت کنه دست پیدا کنی.
مثلا آدرس ماژول m65:
https://www.quectel.com/product/gsm-gprs-m65
وسطای صفحه بزرگ نوشته:
Application Note
وقتی روش کلیک کنی یه زیر مجموعه واست باز میشه که راهنمای راه اندازی اکثر قسمت ها داخلش قرار گرفته
و یکی از اونها هم نحوه راه اندازی HTTPS هستش.
به تاریخ امروز اسم این فایل و ورژنش هست:
Quectel_GSM_HTTPS_Application_Note_V3.3


چند نکته در مورد استفاده از HTTPS:
اصل تفاوت http و https در مورد بخش امنیتشون هست.
برای همین باید موقع ارتباط با پروتکل https یکسری موارد رعایت بشه:
داخل دیتاشیت ماژولت بخش https (که بالا توضیح دادم چطور میتونی این دیتاشیت https رو دانلود کنی) یک بخشی هست به نام:
SSL Version and Cipher Suite
که این بخش دوتا زیر مجموعه داره:
1- Supported SSL Versions
2- Supported SSL Cipher Suites
حالا این موارد (یا بسته به تنطیماتی که انجام میدی بخشی از این موارد) توسط شما روی سایتی که https هست باید توسط برنامه نویس بخش سایت تنظیم بشه.(با پشتیبانی جایی که ازش سایت و هاست و بقیه موارد سایت رو گرفتین تماس بگیرین تا اونها برای شما این تنظیمات رو انجام بدن) البته سایت هایی هم هستن که با دادن آدرس سایت بهشون به شما اطلاعات این موارد رو برمیگردونن اما تنظیم کردن با بخش پشتیبانی هستش.

داخل تنظیمات ماژولت هم باید مشخص کنی که از کدوم موارد این بخش روی سایت تنظیم شده.

نکته مهم: با فعال کردن بخش https یکسری از هملکرد هایی که داخل پروتکل http شاهدش بودیم دیگه از دسترس خارج میشه.
مثلا درمورد ماژول m66 با پروتکا https دستورات مربوط به بررسی کانکشن یا پینگ از کار میفته و اگر ازشون استفاده کنی جواب نامعتبر برمیگردونه.(بطور مثال اگر از این دستورات استفاده کنی همیشه جواب “اتصال برقرار است” بر میگردونه.)
برای همین اگر از این موارد استفاده میکنی بهتر چک کنی آیا در دوحالت برقرار یا عدم برقرار، جواب های مناسب رو برمیگردونه یا نه.
البته: اگر این دستورات درست کار نکنه راه های دیگه ای برای انجامشون وجود داره.
نکته دوم: برای برقراری ارتباط https گاهی اوقات در شرایطی نیاز پیدا میکنی که " Certificate and Key" که موقع خرید SSL بهت داده میشه رو روی ماژول تنظیم کنی.


تقریبا این موارد کلی بود و بعد از اینا کارت راه میفته ان شاء الله

2 پسندیده

سلام ممنون از راهنمایی
مواردی که گفتید بررسی میکنم
در مورد SSL که گفتید باید ست کنم معمولاً هست ها در اختیار قرار نمیدهند

سلام مجدد. راهنمایی خیلی خوبی کردید خیلی سپاسگزارم
الان مشکل من با قسمت
SSL Version and Cipher Suite
هستش. الان من برای تست ، api که نوشتم روی سرور لیارا قرار دادم. این تنظیمات که گفتید باید قبل از برقراری ارتباط روی ماژول ست کنم از پشتیبانی سایت درخواست کنم؟ همه قسمت های که گفته شده مخصوصا secret key باید ست کنم؟ باز هم ممنون

سلام. از پشتیبانی لیارا پرسیدم این جواب را داد:
این مقادیر هنگام انجام SSL Handshake توسط کلاینت و با پرسش از سرور انتخاب می‌شن.
لازم به ذکر است امکان به اشتراک گذاری گواهی SSL زیر دامنه‌تون در لیارا وجود نداره. ولی می‌تونید یک دامنه به برنامه‌تون متصل کرده و گواهی SSL رو فعال نکنید .

وقتی ssl میخری " Certificate and Key" رو بهت نمیدن؟
مگه میشه؟
این چیزیه که خریدی و باید در اختیارت بزارن، شاید درست بهشون توضیح ندادی و اونا چیز دیگه ای متوجه شدن.
من تخصص اصلیم الکترونیکه برای همین زمانی که نیاز به این چیزا پیدا کردم اوایل درست نمیتونستم بخش پشتیبانی رو متوجه منظور خودم کنم.

1 پسندیده

این قسمت SSL Version and Cipher Suite رو باید اول از همه تنظیم کنید (بخش پشتیبانی باید این کار رو برای شما انجام بده و بعدا توی اینترنت بگرد و از سایت هایی که تنظیم بودن یا نبودنش رو بررسی میکنن استفاده کن تا ببینی درست تنظیم شده یا نه) چیز خاصی نیست.

البته باید قبلش ssl رو خریده باشی و روی سایت ست کرده باشی.(سایتت باید با https شروع بشه نه با http)


الان دقیق یادم نیست که برای https جز موارد لازم بود یا اختیاری، اول همون قسمت بالا که توضیح دادم رو انجام بده و بعد هم با سایتایی که SSL Version and Cipher Suite رو چک میکنن یه بررسی کن و اگر درست تنظیم شده بود با ماژول سعی کن ارتباط بگیری اگر get و post کار نکرد اونوقت " Certificate and Key" رو هم توی ماژول ست کن.(فکر نمیکنم " Certificate and Key" جز موارد لازم باشه و بدون ست کردنشم به احتمال خیلی قوی باید کارت راه بیفته)


قبلا با get و post و روی پروتکل HTTP تونستی ارتباط بگیری؟

سلام این سوال را از پشتیبانی پرسیدم
من یک سرور با نود جی اس در حال اجرا دارم. برای ارسال دیتا به سرور از ماژول GSM استفاده میکنم. سرویس های شما با HTTPS هستند. برای ارتباط ماژول به سرور باید نوع ssl , cipher suite , secret key را روی ماژول ست کنم. سوال این هست که برای ارتباط ، این مقادیر را ندارم. لطفا راهنمایی کنید. اگر مقادیر ست نشود ارتباط برقرار نمی شود

این جواب را داد. یعنی در اختیار نمیگذارند

هاست ssl داره و معتبر هست. چک کردم.
اما پشتیبانی هاست اطلاعات گواهی نامه را در اختیار قرار نمیده.

بله در با http روی این مازول و سایت بدون ssl جواب گرفتم.

دستورات را هم طبق pdf که لینک دادید به مازول ارسال کردم

AT+QIFGCNT=0
AT+QICSGP=1,“MCINET”
AT+QIREGAPP
AT+QILOCIP
AT+QSSLCFG=“sslversion”,1,4
AT+QSSLCFG=“seclevel”,1,1
AT+QSSLCFG=“ciphersuite”,1,“0X003D”

T+QSSLCFG=“https”,1
AT+QSSLCFG=“httpsctxi”,1
AT+QHTTPURL=18,60

ادرس سایت
AT+QHTTPGET=60

اگر شما مالک سایت باشید ssl خریداری شده باید در اختیارتون قرار بگیره، چون پول دادید و خریدید!
من با پارس پک کار میکردم و همه چی در اختیارم میزاشتن.


تستی که گفتم از سایتتون بگیرید رو گرفتین؟
تستی که مشخص میکنه سایت شما از چه SSL_version و cipher_suite پشتیبانی میکنه؟
نتیجش رو بزار تا ببینمش


ignore_RTC_time رو هم تنظیم کن (ست کن روی یک)


به دستورات بالا که گذاشتی دستور ignore_RTC_time رو هم اضافه کن و بعد نتیجه ارسال و دریافت ها رو بزار تا ببینمشون

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

تست که گفتید زدم . این نتیجه اش:
Valid from October 2, 2022 to December 30, 2022
Serial Number: 04becef4c36f81e52e24c6a6b92419fea9c9
Signature Algorithm: sha256WithRSAEncryption
Issuer: R3

برای ignore_RTC_time هم امتحان کردم فرقی نداشت

دستوراتی که ارسال کردم درست بود؟
ممنون از پیگیری

از این سایت برای گرفتن اطلاعات استفاده کن:

نمونه تستش برای سایت https://sisoog.com/:
https://geekflare.com/tools/tests/5pqj5lstv

این سایت هم خوبه:
https://cryptcheck.fr/
نمونه تستش برای سایت sisoog.com
CryptCheck

نکته: به نحوه وارد کردن آدرس سایت برای هر دو نمونه توجه کن یکی باید https اولش باشه اما برایدومی نباید باشه.


این سایت کمکت میکنه: Online Tool to Test SSL, TLS and Latest Vulnerability - Geekflare


داخل سایت اولی فقط اطلاعات پروتکل رو میده مثلا برای سایت sisoog.com میگه که از موارد زیر پشتیبانی میکنه:
TLS 1.0
TLS 1.1
TLS 1.2
TLS 1.3
اما سایت دومی اطلاعا کامل تری بهت میده و نوشته که مثلا:
TLSv1_2
(بخونش TLS ورژن 1.2)
از چه انواعی پشتیبانی میکنه.

نکته: سایتت رو با هردو بررسی کن (بعضی از سایت ها بعضی از موارد جدید رو بررسی نمیکنن توی مثال بالا میبینی که TLS v1.3 فقط تو سایت اولی بررسی شده)

بعد از گرفتن تست از سایتت باید بررسی کنی که آیا با ورژن و نوع SSL Cipher Suites ماژول مشترک هست یا نه.
حداقل باید یک مورد از بخش Table 2: Supported SSL Cipher Suites (داخل فایل GSM_HTTPS_Application_Note_V3.3 که در پست اول گفته بودم چجوری دانلود کنی) از طرف سایت پشتیبانی بشه.

اگر توی تست دیدی پشتیبانی نمیشه بهترین کار اینه که با بخش پشتیبانی سایت (جایی که خریدی) تیکت بزنی و کل دوتا جدول داخل فایل ماژول رو بهشون بدی تا روی سایت تنظیم کنن.
(منظورم این دوتا هستش:)

ارسال درسته اما برای بررسی به پاسخی که ماژول بهت داده نیاز هست.
ارسال و دریافت رو بزار

سلام بررسی میکنم نتیجه را می گذارم

نتیجه تست
https://cryptcheck.fr/https/liara.ir

Sent: AT+QIFGCNT=0<0D><0A>
AT+QIFGCNT=0

OK

Sent: AT+QICSGP=1,“MCINET”<0D><0A>
AT+QICSGP=1,“MCINET”

OK

Sent: AT+QIREGAPP<0D><0A>
AT+QIREGAPP

OK

Sent: AT+QIACT<0D><0A>
AT+QIACT

OK

Sent: AT+QILOCIP<0D><0A>
AT+QILOCIP

21.174.115.146

Sent: AT+QSSLCFG=“sslversion”,1,3<0D><0A>
AT+QSSLCFG=“sslversion”,1,3

OK

Sent: AT+QSSLCFG=“seclevel”,1,2<0D><0A>
AT+QSSLCFG=“seclevel”,1,2

OK

Sent: AT+QSSLCFG=“ciphersuite”,1,“0X003D”<0D><0A>
AT+QSSLCFG=“ciphersuite”,1,“0X003D”

OK

Sent: AT+QSSLCFG=“cacert”,1,“RAM:ca_cert.pem”<0D><0A>
AT+QSSLCFG=“cacert”,1,“RAM:ca_cert.pem”

OK

Sent: AT+QSSLCFG=“clientcert”,1,“RAM:client_cert.pem”<0D><0A>
AT+QSSLCFG=“clientcert”,1,“RAM:client_cert.pem”

OK

Sent: AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”<0D><0A>
AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”

OK

Sent: AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”<0D><0A>
AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”

OK

Sent: AT+QSSLCFG=“ignorertctime”,1<0D><0A>
AT+QSSLCFG=“ignorertctime”,1

OK

Sent: AT+QSSLCFG=“https”,1<0D><0A>
AT+QSSLCFG=“https”,1

OK

Sent: AT+QSSLCFG=“httpsctxi”,1<0D><0A>
AT+QSSLCFG=“httpsctxi”,1

OK

Sent: AT+QHTTPURL=29,60<0D><0A>
AT+QHTTPURL=29,60

CONNECT
آدرس سایت

OK

Sent: AT+QHTTPGET=220<0D><0A>
AT+QHTTPGET=220

+CME ERROR: http socket connect error

سلام
نتایج تست
TLS_AES_128_GCM_SHA256
TLSv1.3
ظاهرا
هیچکدام با ماژول نمی خونه

سلام
موقع ارسال کد یا متن های انگلیسی داخل “متن قالب بندی شده” قرارش بده تا خوانایی بیشتری داشته باشه.
مثلا:

Sent: AT+QIFGCNT=0<0D><0A>
AT+QIFGCNT=0

OK

Sent: AT+QICSGP=1,“MCINET”<0D><0A>
AT+QICSGP=1,“MCINET”

OK

Sent: AT+QIREGAPP<0D><0A>
AT+QIREGAPP

OK

Sent: AT+QIACT<0D><0A>
AT+QIACT

OK

Sent: AT+QILOCIP<0D><0A>
AT+QILOCIP

21.174.115.146

Sent: AT+QSSLCFG=“sslversion”,1,3<0D><0A>
AT+QSSLCFG=“sslversion”,1,3

OK

Sent: AT+QSSLCFG=“seclevel”,1,2<0D><0A>
AT+QSSLCFG=“seclevel”,1,2

OK

Sent: AT+QSSLCFG=“ciphersuite”,1,“0X003D”<0D><0A>
AT+QSSLCFG=“ciphersuite”,1,“0X003D”

OK

Sent: AT+QSSLCFG=“cacert”,1,“RAM:ca_cert.pem”<0D><0A>
AT+QSSLCFG=“cacert”,1,“RAM:ca_cert.pem”

OK

Sent: AT+QSSLCFG=“clientcert”,1,“RAM:client_cert.pem”<0D><0A>
AT+QSSLCFG=“clientcert”,1,“RAM:client_cert.pem”

OK

Sent: AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”<0D><0A>
AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”

OK

Sent: AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”<0D><0A>
AT+QSSLCFG=“clientkey”,1,“RAM:client_key.pem”

OK

Sent: AT+QSSLCFG=“ignorertctime”,1<0D><0A>
AT+QSSLCFG=“ignorertctime”,1

OK

Sent: AT+QSSLCFG=“https”,1<0D><0A>
AT+QSSLCFG=“https”,1

OK

Sent: AT+QSSLCFG=“httpsctxi”,1<0D><0A>
AT+QSSLCFG=“httpsctxi”,1

OK

Sent: AT+QHTTPURL=29,60<0D><0A>
AT+QHTTPURL=29,60

CONNECT
آدرس سایت

OK

Sent: AT+QHTTPGET=220<0D><0A>
AT+QHTTPGET=220

+CME ERROR: http socket connect error

این دستور AT+QSSLCFG=“sslversion”,1,3 بجای 3 چرا 4 نمیزاری؟ توی فایل pdf به قسمت توضیحاتش نگاه کن نوشته اگر <SSL_version> برابر 4 باشه از همه نسخه های پشتیبانی میکنه اینجوری ارتباط مطمئنتر میشه.


توی دستور AT+QSSLCFG بخش <CTX_index> همشون باید یکی باشه (مثلا اگر از 1 استفاده کردی همه رو یک بزار. درواقع یک گروه یا فهرست یا index مشخص رو داری تنظیم میکنی)(که الان رعایتش کردی)


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

اما پست بعدی اولویتش بالاتره

1 پسندیده