خطای ssl سایت: از تشخیص تا رفع و مسئولش کیست؟

یاسین
1405/7/19
13 دقیقه
122 بازدید
خطای ssl سایت: از تشخیص تا رفع و مسئولش کیست؟

پاسخ کوتاه: خطای ssl چیست و مسئول رفعش کیست؟

پاسخ کوتاه: خطای ssl یعنی مرورگر نتوانسته مطمئن شود گواهی امنیتی سایت با همان دامنه ای که باز کرده اید یکی است و از یک مرجع معتبر گرفته شده است. در بیشتر موارد تقصیر بازدیدکننده نیست؛ گواهی منقضی شده، نام دامنه در آن درست نیست، یا زنجیره گواهی نیمه کاره نصب شده است. رفع هر سه مورد تقریبا همیشه کار هاست است، نه کار شما، و معمولا بین ده دقیقه تا یک روز کاری طول می کشد.

هشدار مرورگر اما برای همه یکسان نیست و همین جا بیشترین اشتباه رخ می دهد. گاهی فقط تاریخ گواهی گذشته و داده شما همچنان رمزنگاری می شود؛ گاهی واقعا نمی شود مطمئن بود طرف مقابل همان سایت است. تفاوت این دو حالت را در بخش بعد می بینیم، چون تصمیم شما درباره وارد کردن رمز عبور به همین تفاوت بستگی دارد.

اگر مفهوم خود گواهی امنیتی و روش بررسی آن را نمی دانید، در مقاله معنای دقیق خطا های گواهی در مرورگر ساده توضیح داده شده است. این راهنما یک قدم جلوتر است: از پیامی که روی صفحه می بینید تا اینکه تقصیر کیست، چه کسی درستش می کند و چقدر زمان می برد.

خطای ssl واقعا خطرناک است یا فقط یک هشدار نمایشی؟

پیش از هر کاری بدانید چرا مرورگر این هشدار را نشان می دهد: در همه حالت های خطای گواهی، داده میان مرورگر و سرور رمزنگاری می شود. آنچه از دست می رود «اطمینان» است، نه «رمزنگاری». مرورگر می گوید نمی توانم تضمین کنم این رمزنگاری با همان سایتی است که فکر می کنید. این جمله کوتاه ریشه همه هشدار ها است.

سه حالت را از هم جدا کنید تا تصمیم درستی بگیرید. اول، گواهی سایت خودتان است ولی تاریخش گذشته یا نام دامنه در آن غلط است: اینجا سایت همان سایت واقعی است و خطر جانی وجود ندارد، ولی هشدار روی صفحه مشتری را فراری می دهد و در فروشگاه اینترنتی مستقیم روی نرخ خرید اثر می گذارد. دوم، گواهی را شما نگرفته اید یا برای دامنه دیگری صادر شده است: تا رفع آن هیچ رمز عبور، شماره کارت یا اطلاعات هویتی وارد نکنید، چون نمی شود گفت چه کسی وسط راه نشسته است. سوم، هشدار محتوای ناامن یا همان قفل نیمه باز: صفحه با https باز می شود ولی بخشی از تصویر ها و کد ها از نشانی ناامن بار می شوند؛ اینجا فرم های اصلی امن اند ولی آن بخش ناامن، امن نیست و از سمت سرور هم نمی آید؛ از داخل خود صفحه می آید.

جمع بندی این بخش یک خط است: اگر گواهی مال سایت خودتان و فقط تاریخش گذشته، خطر امنیتی ندارید ولی باید همان روز رفعش کنید؛ اگر گواهی را خودتان نگرفته اید، تا رفع مشکل روی آن سایت هیچ اطلاعاتی وارد نکنید.

لپ تاپ روی میز چوبی با پنجره مرورگر ناروشن و نوار هشدار سرخ در بالای صفحه
هر پیام مرورگر یک مسئول دارد؛ متن دقیق یا کد خطا را نگه دارید.

کدام خطا را می بینید؟ جدول تشخیص

انواع خطا را می توانید از روی همین متن یا کد بشناسید، پس متن دقیقی که می بینید را بردارید و در جدول زیر پیدا کنید. ستون آخر می گوید از کجا باید پیگیری شود؛ بدون این تشخیص، هر تماس با پشتیبانی دو بار طول می کشد.

چیزی که می بینیدمعنای کوتاهتقصیر کیستچه کسی رفع می کند
اتصال شما خصوصی نیست، همراه کد NET::ERR_CERT_DATE_INVALIDتاریخ اعتبار گواهی گذشته استگواهی سایتهاست، با تمدید
NET::ERR_CERT_COMMON_NAME_INVALIDنام دامنه شما در فهرست نام های گواهی نیستنصب و صدور گواهیهاست
NET::ERR_CERT_AUTHORITY_INVALIDگواهی را مرجع معتبر صادر نکرده یا ناقص نصب شده استنصب گواهیهاست، گاهی برنامه نویس
NET::ERR_SSL_PROTOCOL_ERROR یا خطا در برقراری ارتباط امنسرور با نسخه های امن پروتکل حرف نمی زندتنظیمات سرورهاست
هشدار محتوای ناامن یا قفل نیمه باز در حالی که https استبخشی از منابع صفحه از نشانی ناامن می آیدکد صفحهبرنامه نویس
هشدار فقط روی گوشی یا رایانه خودتانساعت دستگاه جلو یا عقب است یا گواهی جایگزین روی دستگاه نصب شدهدستگاه کاربرخودتان

یک مورد را جدا نگه دارید: اگر هشدار فقط روی دستگاه شما دیده می شود و روی دستگاه دیگری نه، مشکل سایت نیست. ساعت دستگاه را درست کنید و اگر برطرف نشد، سراغ برنامه هایی بروید که روی همان دستگاه گواهی نصب می کنند. این حالت در ایران زیاد دیده می شود و تشخیصش ساده است: هشدار برای سایت های بزرگ و معتبر هم ظاهر می شود.

در هر مرورگر چه می بینید؟ کروم، فایرفاکس، سافاری و ادج

هر مرورگر جمله مخصوص خودش را نشان می دهد، ولی همه یک معنا دارند. جدول زیر جمله رایج و محل دیدن جزئیات را می گوید.

مرورگرجمله ای که می بینیدجزئیات را کجا ببینم
کروماتصال شما خصوصی نیست، همراه یک کد خطادکمه پیشرفته، بعد بخش جزئیات
فایرفاکسهشدار امنیتی پیش رو، همراه گزینه رفتن به صفحهدکمه پیشرفته، بعد مشاهده گواهی
سافاریاین اتصال خصوصی نیستنمایش جزئیات و بخش گواهی
ادجاتصال شما امن نیست، همراه کد خطادکمه جزئیات، بعد ادامه به صفحه

نام دقیق خطا را حتما نگه دارید. وقتی به پشتیبانی هاست می نویسید، همین کد کار را از «سایت من خطا می دهد» به «گواهی سایت با خطای نام نامنطبق برنگشت» تغییر می دهد و پاسخ را چند روز جلو می اندازد. اگر کد را گم کردید، در مرورگر کلید F12 را بزنید و بخش کنسول را ببینید؛ آخرین خط قرمز همان کد است.

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

روی گوشی و اندروید چه کار کنیم؟

روی گوشی همان هشدار با متن کوتاه تری دیده می شود و در بعضی نسخه ها دکمه ادامه دادن هم وجود ندارد. اگر سایت شما روی رایانه سالم است و روی گوشی هشدار می دهد، اول ساعت گوشی و بعد برنامه های تغییر مسیر اینترنت را بررسی کنید. بعضی از این برنامه ها یک گواهی جایگزین روی دستگاه نصب می کنند و برای همه سایت ها هشدار می سازند؛ نشانه اش دیدن هشدار برای سایت های بزرگ و شناخته شده است. با برداشتن آن برنامه یا پاک کردن گواهی جایگزین، مشکل برطرف می شود.

اگر هشدار روی همه دستگاه ها دیده می شود، مقصر سایت است و کار از بخش بعد ادامه پیدا می کند. برای ثبت و نگهداری دامنه هم اگر سوالی دارید، راهنمای ثبت و نگهداری دامنه مراحل را ساده توضیح داده است؛ بیشتر خطا های امروز ارث یک جابه جایی سرور یا نیم سرور است.

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

بررسی گواهی سایت با یک دستور

پیش از تماس با پشتیبانی، سایت خودتان را یک بار بسنجید. دستور اول را در ترمینال مک و لینوکس یا در پاورشل ویندوز اجرا کنید؛ خروجی آن فقط یک عدد است و همان عددی است که مرورگر هم می بیند. عدد صفر یعنی گواهی سالم است و هر عدد دیگری یعنی مرورگر به گواهی اعتماد نکرده است.

curl -sS -o /dev/null \
  -w "%{ssl_verify_result}\n" \
  https://example.com

روی سایت خودمان همین امروز این دستور عدد صفر برگرداند. برای اینکه ببینید عدد خراب چه شکلی است، همان دستور را روی یک سایت آزمایشی با گواهی منقضی زدیم و عدد ۱۰ برگشت، یعنی گواهی منقضی است. حالا دستور دوم را بزنید؛ این دستور تاریخ اعتبار، نام اصلی گواهی و مرجع صادرکننده را می گوید.

echo | openssl s_client -connect example.com:443 \
  -servername example.com 2>/dev/null \
  | openssl x509 -noout -dates -subject -issuer

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

notBefore=Sep 21 09:50:05 2026 GMT
notAfter=Dec 20 09:50:04 2026 GMT
subject=CN = cpcontacts.codeyas.com
issuer=C = US, O = Let's Encrypt, CN = YR1

اگر کار با ترمینال برایتان سخت است، ابزار های آنلاین بررسی گواهی هم همین چند چیز را نشان می دهند؛ فرقشان این است که این دو دستور را می توانید عینا در تیکت پشتیبانی بگذارید و به عنوان شاهد ضمیمه کنید. یک نکته مهم در همان خروجی بالا هست که جای اشتباه زیاد دارد: نام اصلی گواهی ما نام دامنه نیست. ملاک مرورگر نام اصلی نیست، فهرست نام های معتبر گواهی است؛ در گواهی سایت ما این فهرست ده نام دارد و هر دو شکل دامنه، با www و بدون آن، در آن هست. اگر نام دامنه شما در این فهرست نباشد، مرورگر همان خطای نام نامنطبق را می دهد، حتی وقتی تاریخ گواهی کاملا درست است.

یک نمونه واقعی: گواهی سایت خودمان

اندازه گیری همین امروز روی سایت خودمان، با همان دستور های بالا: گواهی از مرجع Let's Encrypt و از نوع ساده است، از ۲۱ سپتامبر ۲۰۲۶ تا ۲۰ دسامبر ۲۰۲۶ اعتبار دارد که می شود ۹۰ روز، زنجیره اش سه گواهی دارد، فهرست نام ها ده نام دامنه را پوشش می دهد و پاسخ بازبینی مرورگر عدد صفر، یعنی سالم، است. نسخه پروتکل هم نسخه تازه TLS 1.3 است و بازدید ساده روی پورت ۸۰ با کد ۳۰۱ به نسخه امن هدایت می شود.

سه چیز در همین عدد های ساده قابل توجه است. اول، پول دادن برای همین نوع ساده هیچ امنیت اضافه ای نمی آورد؛ تفاوت گواهی های پولی در بررسی هویت سازمانی و پشتیبانی است، نه در استحکام رمزنگاری. دوم، اعتبار ۹۰ روزه یعنی هر سه ماه یک بار تمدید لازم است و دقیقا همین جاست که سایت ها می خوابند. سوم، زنجیره سه گواهی یعنی اگر گواهی میانی روی سرور نصب نشود، مرورگر گواهی شما را قبول نمی کند؛ این یکی از سه علت اصلی خطای امروز است.

مسئول رفع کیست؟ خودتان، هاست یا برنامه نویس

این جدول بیشترین وقت را در تماس های پشتیبانی ذخیره می کند؛ چه مدیر سایت خودتان باشید و چه کسی را برای این کار داشته باشید. در بیشتر موارد اولین تماس شما با هاست است، ولی سه ردیف آخر را هاست نمی تواند حل کند و باید برنامه نویس سراغش برود.

نشانهمسئولکاری که باید انجام شود
گواهی منقضی شده یا تمدید خودکار کار نمی کندهاستتمدید گواهی و بررسی تمدید خودکار
یک شکل دامنه در گواهی نیست، مثلا www پوشش داده نشدههاستصدور گواهی با هر دو نام دامنه
زنجیره گواهی ناقص استهاستنصب گواهی میانی روی سرور
نسخه های قدیمی و ناامن پروتکل باز مانده اندهاستخاموش کردن نسخه های قدیمی و روشن کردن نسخه های تازه
هشدار محتوای ناامن در صفحهبرنامه نویستغییر نشانی منابع صفحه به نسخه امن
افزونه یا کد قدیمی که نشانی ناامن می سازدبرنامه نویسبه روزرسانی یا جایگزینی آن بخش
هشدار فقط روی یک دستگاهخودتاندرست کردن ساعت دستگاه و برداشتن گواهی جایگزین

اگر هاست شما پاسخگو نیست یا سایت وردپرسی دارید و تشخیصش سخت شده است، انتخاب هاست و نوع پشتیبانی خودش موضوع مهمی است؛ در راهنمای انتخاب هاست و پشتیبانی معیار های سنجش را جمع کرده ایم تا پیش از پرداخت، بازه پاسخگویی و دسترسی سطح سرور را بسنجید.

نفر ساعت: هر کدام از این کار ها چقدر وقت می برد؟

زمان های زیر برآورد کار ما روی سایت های متوسط است و عدد قطعی نیست، ولی برای برنامه ریزی کافی است. بیشترین زمان، انتظار برای پاسخ پشتیبانی و انتشار تنظیمات نیم سرور است، نه خود کار.

کارزمان تقریبیچه چیزی آن را طولانی می کند
تمدید گواهی منقضی۱۰ تا ۳۰ دقیقهنداشتن دسترسی به پنل هاست یا خاموش بودن تمدید خودکار
صدور گواهی تازه با نام درست۳۰ دقیقه تا ۲ ساعتانتظار برای انتشار تنظیمات نیم سرور
رفع محتوای ناامن در سایت وردپرسی۱ تا ۳ ساعتقالبی که نشانی منابع را در چند فایل تکرار کرده است
رفع محتوای ناامن در سایت اختصاصینیم روز کارینشانی های ناامن در چند بخش کد
پیگیری با پشتیبانی هاستهر پاسخ ۱ تا ۲ روز کاریصف پشتیبانی و نبود دسترسی سطح سرور

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

چیز هایی که در این مسیر انجام نمی دهیم

در این بخش صریح باشیم؛ بعضی از این خواسته ها خارج از محدوده فنی هر برنامه نویسی است و بهتر است از اول گفته شود.

  • هشدار مرورگر را پنهان نمی کنیم. تا ریشه مشکل رفع نشود، مرورگر اجازه پنهان کردن هشدار را نمی دهد و هر راه میان بری که نشانتان بدهند فقط روی یک مرورگر و برای مدتی کوتاه کار می کند.
  • گواهی خودامضا را برای مرورگر معتبر نمی کنیم. فقط مرجع های معتبر می توانند گواهی معتبر صادر کنند؛ گواهی داخلی برای شبکه داخلی خوب است نه برای سایت عمومی.
  • برای دامنه ای که در اختیار شما نیست گواهی صادر نمی شود. مالکیت دامنه پیش نیازی است که با تنظیمات سرور حل نمی شود.
  • محتوای ناامن را با حذف تصویر ها حل نمی کنیم. اگر چند تصویر یا فایل از نشانی ناامن می آید، درستش تغییر خود منبع است، نه پاک کردنش از صفحه.
اینفوگرافیک پنج بررسی پس از رفع خطای SSL
این پنج مورد را به کسی که کار را انجام داده بدهید و بخواهید مورد به مورد نشان دهد.

معیار پذیرش: بعد از رفع این پنج چیز را چک کنید

کار وقتی تمام است که هر پنج مورد زیر درست باشد؛ اگر یکی نباشد، خطا در بعضی مرورگر ها یا بعضی صفحه ها برمی گردد. این فهرست را به کسی که کار را انجام داده بدهید و بخواهید مورد به مورد نشان دهد.

  1. نشانی سایت با https در کروم و فایرفاکس بدون هشدار باز شود و قفل بسته نشان داده شود.
  2. در بخش جزئیات گواهی، تاریخ پایان دست کم ۳۰ روز جلوتر باشد و نام دامنه شما در فهرست نام های گواهی دیده شود.
  3. ورود به سایت با نسخه ساده، خودکار به نسخه امن هدایت شود؛ ما این را با کد ۳۰۱ سنجیدیم.
  4. کنسول مرورگر هیچ پیام محتوای ناامن نشان ندهد.
  5. همان صفحه روی گوشی و روی یک مرورگر دیگر هم بدون هشدار باز شود.

پیشگیری: چطور دوباره به این خطا نخوریم

گواهی یک تاریخ پایان دارد و مرورگر در آن هیچ نرم کردنی ندارد. چهار کار کوچک این خطا را از سالی چند بار به نزدیک صفر می رساند.

  • تمدید خودکار را روشن کنید و ماهانه یک بار بررسی کنید که واقعا کار کرده است؛ گواهی رایگان اعتبار ۹۰ روزه دارد، پس هر سه ماه یک بار این موضوع تازه می شود.
  • هر دو شکل نام دامنه، با www و بدون آن، در گواهی پوشش داده شود تا تغییر نشانی کاربران خطا نسازد.
  • پیش از تغییر هاست یا نیم سرور، گواهی را بررسی کنید؛ بیشتر خطا های امروز بعد از یک جابه جایی ظاهر می شوند.
  • ماهانه با همان دو دستور بخش «بررسی گواهی سایت با یک دستور» سنجش کنید. اگر تاریخ پایان کمتر از ۳۰ روز بود، همان روز پیگیری کنید، نه روزی که گواهی تمام می شود.

جمع بندی

خطای ssl در بیشتر موارد یک کار کوچک است که دیر انجام شده: گواهی منقضی، نام نادرست، یا زنجیره ناقص. تشخیصش با یک دستور و یک جدول انجام می شود و رفعش تقریبا همیشه سمت هاست است. چیزی که این خطا را گران می کند، خوابیدن روی آن است نه خودش؛ هشدار روی صفحه، مشتری را پیش از رسیدن به سبد خرید برمی گرداند.

همین امروز یک بار نشانی سایت خودتان را با https باز کنید. اگر هشدار دید، متن دقیق یا کد خطا را بردارید، دستور بخش بررسی گواهی را اجرا کنید و خروجی را در تیکت پشتیبانی هاست بگذارید. این یک کار ده دقیقه ای، جای چند روز رفت و آمد را می گیرد.

اشتراک‌گذاری مقاله:

سوالات متداول

نظرات کاربران

ارسال نظر جدید

حداقل ۱۰ و حداکثر ۱۰۰۰ کاراکتر

هنوز نظری ثبت نشده است

اولین نفری باشید که دیدگاه خود را می‌نویسد!

مطالب مرتبط

مقالات مشابه که ممکن است برایتان جالب باشد