پاسخ کوتاه: خطای 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 پوشش داده نشده | هاست | صدور گواهی با هر دو نام دامنه |
| زنجیره گواهی ناقص است | هاست | نصب گواهی میانی روی سرور |
| نسخه های قدیمی و ناامن پروتکل باز مانده اند | هاست | خاموش کردن نسخه های قدیمی و روشن کردن نسخه های تازه |
| هشدار محتوای ناامن در صفحه | برنامه نویس | تغییر نشانی منابع صفحه به نسخه امن |
| افزونه یا کد قدیمی که نشانی ناامن می سازد | برنامه نویس | به روزرسانی یا جایگزینی آن بخش |
| هشدار فقط روی یک دستگاه | خودتان | درست کردن ساعت دستگاه و برداشتن گواهی جایگزین |
اگر هاست شما پاسخگو نیست یا سایت وردپرسی دارید و تشخیصش سخت شده است، انتخاب هاست و نوع پشتیبانی خودش موضوع مهمی است؛ در راهنمای انتخاب هاست و پشتیبانی معیار های سنجش را جمع کرده ایم تا پیش از پرداخت، بازه پاسخگویی و دسترسی سطح سرور را بسنجید.
نفر ساعت: هر کدام از این کار ها چقدر وقت می برد؟
زمان های زیر برآورد کار ما روی سایت های متوسط است و عدد قطعی نیست، ولی برای برنامه ریزی کافی است. بیشترین زمان، انتظار برای پاسخ پشتیبانی و انتشار تنظیمات نیم سرور است، نه خود کار.
| کار | زمان تقریبی | چه چیزی آن را طولانی می کند |
|---|---|---|
| تمدید گواهی منقضی | ۱۰ تا ۳۰ دقیقه | نداشتن دسترسی به پنل هاست یا خاموش بودن تمدید خودکار |
| صدور گواهی تازه با نام درست | ۳۰ دقیقه تا ۲ ساعت | انتظار برای انتشار تنظیمات نیم سرور |
| رفع محتوای ناامن در سایت وردپرسی | ۱ تا ۳ ساعت | قالبی که نشانی منابع را در چند فایل تکرار کرده است |
| رفع محتوای ناامن در سایت اختصاصی | نیم روز کاری | نشانی های ناامن در چند بخش کد |
| پیگیری با پشتیبانی هاست | هر پاسخ ۱ تا ۲ روز کاری | صف پشتیبانی و نبود دسترسی سطح سرور |
اگر نمی خواهید این زمان را خودتان بگذارید، نگهداری فنی سایت را می توانید به ما بسپارید؛ ما همین مسیر تشخیص تا رفع را انجام می دهیم و گزارشش را تحویل می دهیم.
چیز هایی که در این مسیر انجام نمی دهیم
در این بخش صریح باشیم؛ بعضی از این خواسته ها خارج از محدوده فنی هر برنامه نویسی است و بهتر است از اول گفته شود.
- هشدار مرورگر را پنهان نمی کنیم. تا ریشه مشکل رفع نشود، مرورگر اجازه پنهان کردن هشدار را نمی دهد و هر راه میان بری که نشانتان بدهند فقط روی یک مرورگر و برای مدتی کوتاه کار می کند.
- گواهی خودامضا را برای مرورگر معتبر نمی کنیم. فقط مرجع های معتبر می توانند گواهی معتبر صادر کنند؛ گواهی داخلی برای شبکه داخلی خوب است نه برای سایت عمومی.
- برای دامنه ای که در اختیار شما نیست گواهی صادر نمی شود. مالکیت دامنه پیش نیازی است که با تنظیمات سرور حل نمی شود.
- محتوای ناامن را با حذف تصویر ها حل نمی کنیم. اگر چند تصویر یا فایل از نشانی ناامن می آید، درستش تغییر خود منبع است، نه پاک کردنش از صفحه.

معیار پذیرش: بعد از رفع این پنج چیز را چک کنید
کار وقتی تمام است که هر پنج مورد زیر درست باشد؛ اگر یکی نباشد، خطا در بعضی مرورگر ها یا بعضی صفحه ها برمی گردد. این فهرست را به کسی که کار را انجام داده بدهید و بخواهید مورد به مورد نشان دهد.
- نشانی سایت با https در کروم و فایرفاکس بدون هشدار باز شود و قفل بسته نشان داده شود.
- در بخش جزئیات گواهی، تاریخ پایان دست کم ۳۰ روز جلوتر باشد و نام دامنه شما در فهرست نام های گواهی دیده شود.
- ورود به سایت با نسخه ساده، خودکار به نسخه امن هدایت شود؛ ما این را با کد ۳۰۱ سنجیدیم.
- کنسول مرورگر هیچ پیام محتوای ناامن نشان ندهد.
- همان صفحه روی گوشی و روی یک مرورگر دیگر هم بدون هشدار باز شود.
پیشگیری: چطور دوباره به این خطا نخوریم
گواهی یک تاریخ پایان دارد و مرورگر در آن هیچ نرم کردنی ندارد. چهار کار کوچک این خطا را از سالی چند بار به نزدیک صفر می رساند.
- تمدید خودکار را روشن کنید و ماهانه یک بار بررسی کنید که واقعا کار کرده است؛ گواهی رایگان اعتبار ۹۰ روزه دارد، پس هر سه ماه یک بار این موضوع تازه می شود.
- هر دو شکل نام دامنه، با www و بدون آن، در گواهی پوشش داده شود تا تغییر نشانی کاربران خطا نسازد.
- پیش از تغییر هاست یا نیم سرور، گواهی را بررسی کنید؛ بیشتر خطا های امروز بعد از یک جابه جایی ظاهر می شوند.
- ماهانه با همان دو دستور بخش «بررسی گواهی سایت با یک دستور» سنجش کنید. اگر تاریخ پایان کمتر از ۳۰ روز بود، همان روز پیگیری کنید، نه روزی که گواهی تمام می شود.
جمع بندی
خطای ssl در بیشتر موارد یک کار کوچک است که دیر انجام شده: گواهی منقضی، نام نادرست، یا زنجیره ناقص. تشخیصش با یک دستور و یک جدول انجام می شود و رفعش تقریبا همیشه سمت هاست است. چیزی که این خطا را گران می کند، خوابیدن روی آن است نه خودش؛ هشدار روی صفحه، مشتری را پیش از رسیدن به سبد خرید برمی گرداند.
همین امروز یک بار نشانی سایت خودتان را با https باز کنید. اگر هشدار دید، متن دقیق یا کد خطا را بردارید، دستور بخش بررسی گواهی را اجرا کنید و خروجی را در تیکت پشتیبانی هاست بگذارید. این یک کار ده دقیقه ای، جای چند روز رفت و آمد را می گیرد.

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