כשכרום מסמן ליד הכתובת אתר לא מאובטח, הוא אומר דבר אחד: החיבור בין הגולש לאתר לא מוצפן כמו שצריך. לפי מרכז העזרה של כרום, התווית הזו אומרת שהפרטיות של החיבור לאתר בעייתית, ומה שבעל האתר צריך לעשות הוא לאבטח את האתר באמצעות HTTPS.
יש כמה חשודים קבועים, ואני בודק אותם בסדר הזה: אין תעודת SSL פעילה, וורדפרס עדיין מוגדר לכתובת עם http, יש באתר תוכן מעורב (mixed content), התעודה פגה, או שיש הגדרה לא נכונה ב-Cloudflare. לכל אחד מהם יש סימן שמזהה אותו ותיקון ברור.
הטבלה מסכמת מה רואים ואיפה לחפש:
| מה רואים | איפה לחפש |
|---|---|
| האתר לא נטען עם https בהתחלה, או שמופיעה אזהרה על תעודה | תעודת SSL באזור ה-SSL או ה-TLS בלוח הבקרה של האחסון |
| הודעת שגיאה של הדפדפן במקום האתר, לפעמים עם הקוד ERR_SSL_PROTOCOL_ERROR | התעודה בלוח הבקרה של האחסון, ואם האתר עובר דרך Cloudflare, קוד השגיאה שהוא מציג (525 או 526) |
| האתר ממשיך לטעון ב-http, או שקישורים פנימיים מחזירים אותך לכתובת בלי https | Settings > General בוורדפרס, או הקובץ wp-config.php |
| האתר נטען ב-https, אבל כרום עדיין לא מציג אותו כמאובטח, או שתמונות, גופנים או סקריפטים חסרים | תוכן מעורב: לשונית Console בכרום |
| האתר עבד עם https ופתאום מופיעה אזהרת פרטיות | פרטי התעודה והתאריכים שלה, והחידוש האוטומטי בלוח הבקרה של האחסון |
| לולאת הפניות (ERR_TOO_MANY_REDIRECTS) אחרי שהפעלת https, באתר שעובר דרך Cloudflare | מצב ההצפנה ב-Cloudflare וההפניה בשרת |
לפני שמשנים משהו, כדאי לגבות את כל הקבצים ואת בסיס הנתונים. חלק מהתיקונים כאן נוגעים בכתובת של האתר כולו, וטעות בהם יכולה לנעול אותך מחוץ ללוח הבקרה. כשיש גיבוי ביד, כל טעות נפתרת בשחזור.
אתר לא מאובטח כי אין תעודת SSL פעילה
הבדיקה הראשונה היא לכתוב בדפדפן את כתובת האתר עם https בהתחלה. אם האתר לא נטען, או שמופיעה אזהרה על תעודה, כנראה שאין תעודת SSL מותקנת על הדומיין, או שהיא מותקנת רק על חלק מהכתובות (למשל עם www ובלי www).
תעודת SSL מתקינים בצד השרת, לא בתוך וורדפרס. נכנסים ללוח הבקרה של האחסון ומחפשים את אזור ה-SSL או ה-TLS. אם יש שם אפשרות להנפיק תעודה לדומיין, מפעילים אותה ומוודאים שהיא מכסה גם את הגרסה עם www וגם את הגרסה בלעדיה. אם אין אפשרות כזו, צריך לפנות לתמיכה של חברת האחסון.
שגיאת SSL שחוסמת את הכניסה לאתר
לפעמים האתר לא נטען בכלל, ובמקומו מופיעה הודעת שגיאה של הדפדפן, לפעמים עם הקוד ERR_SSL_PROTOCOL_ERROR. זה אומר שהדפדפן לא הצליח ליצור חיבור מאובטח עם השרת. קודם כדאי לבדוק אם זה קורה גם ממכשיר אחר ומרשת אחרת. אם כן, הבעיה בצד השרת, והבדיקה הראשונה היא שהתעודה מותקנת ופעילה בלוח הבקרה של האחסון. אם האתר עובר דרך Cloudflare, קוד השגיאה שהוא מציג (525 או 526) מצביע על תיקון בשרת האחסון. את כל הבדיקות ודרכי התיקון לשגיאה הזו ריכזתי במדריך על אתר זה לא יכול לספק חיבור מאובטח.
וורדפרס עדיין מוגדר לכתובת http
כאן התעודה כבר מותקנת, אבל האתר ממשיך לטעון ב-http, או שקישורים פנימיים מחזירים אותך לכתובת בלי https.
כדי לתקן, נכנסים בלוח הבקרה של וורדפרס ל-Settings > General ומשנים את שני השדות WordPress Address (URL) ו-Site Address (URL) לכתובת שמתחילה ב-https. לפי התיעוד של וורדפרס, אם השדות אפורים ואי אפשר לערוך אותם, הכתובת מוגדרת בקובץ wp-config.php (בקבועים WP_HOME ו-WP_SITEURL), ואז משנים אותה שם.
אחר כך צריך שכל כתובת http תפנה לגרסת ה-https שלה. לפי גוגל, במעבר מ-HTTP ל-HTTPS משתמשים בהפניות קבועות, כמו 301 או 308, והפניות קבועות לא גורמות לאובדן PageRank. את ההפניה מגדירים במקום אחד בלבד, בהגדרות האחסון, בשרת או ב-Cloudflare, כי הפניות מכמה מקומות במקביל יכולות ליצור לולאה.
כדי לחייב חיבור מאובטח גם בלוח הבקרה ובמסך ההתחברות, אפשר להוסיף ל-wp-config.php, לפני השורה שמתחילה ב-That's all, stop editing!:
define( 'FORCE_SSL_ADMIN', true );
תוכן מעורב: mixed content
במקרה הזה האתר נטען ב-https, אבל כרום עדיין לא מציג אותו כמאובטח, או שתמונות, גופנים או סקריפטים חסרים. לפי web.dev, לעמוד יש תוכן מעורב כשה-HTML שלו נטען בחיבור HTTPS מאובטח, אבל משאבים אחרים בו, כמו תמונות, סרטונים, קובצי עיצוב וסקריפטים, נטענים בחיבור HTTP לא מאובטח.
זה משנה גם כשהעמוד נראה תקין. לפי web.dev, רוב הדפדפנים כבר חוסמים כברירת מחדל תוכן מעורב פעיל, כמו סקריפטים, וההתנהגות משתנה בין דפדפנים וגרסאות. כרום גם מנסה לשדרג אוטומטית תמונות ומדיה מ-http ל-https כשזה אפשרי. בפועל, חלק מהאתר יכול להישבר אצל חלק מהגולשים בלי שתראה את זה במחשב שלך.
כדי למצוא את המשאבים האלה, פותחים את העמוד בכרום, לוחצים F12 ועוברים ללשונית Console. הדפדפן מתריע שם על תוכן מעורב בשגיאות ובאזהרות, עם הכתובת של כל משאב בעייתי.
התיקון הוא להחליף בכל משאב כזה את הכתובת מ-http:// ל-https://. לפי web.dev, אם בקונסול מופיעה הודעה שבקשה שודרגה אוטומטית מ-HTTP ל-HTTPS, אפשר להחליף את הכתובת בבטחה. אחרי שינוי כתובת האתר, הרבה כתובות ישנות נשארות בתוכן, בווידג'טים ובהגדרות של תוספים. החלפה גורפת בבסיס הנתונים עושים רק אחרי גיבוי מלא, ובודקים את האתר מיד אחריה. אם האתר עובר דרך Cloudflare, יש שם אפשרות בשם Automatic HTTPS Rewrites, שלפי התיעוד שלהם מונעת שגיאות של תוכן מעורב בכך שהיא משכתבת כתובות מ-http ל-https.
התעודה פגה ולא התחדשה
האתר עבד עם https ופתאום מופיעה אזהרת פרטיות. בלחיצה על הסמל שליד הכתובת בכרום אפשר לראות את פרטי התעודה ואת התאריכים שלה.
לתעודות יש תוקף מוגבל. לפי Let's Encrypt, התעודות שלהם ניתנות לתקופה של 90 יום, והם הודיעו שיקצרו את התוקף המרבי ל-45 יום עד פברואר 2028. בגלל זה חידוש ידני הוא מתכון לתקלה. כדאי לבדוק בלוח הבקרה של האחסון שהחידוש האוטומטי פעיל, ואם התעודה כבר פגה, להנפיק אותה מחדש.
הגדרת SSL לא נכונה ב-Cloudflare
התקלה הזו מופיעה כשהאתר עובר דרך Cloudflare, ואחרי שהפעלת https הוא נכנס ללולאת הפניות (ERR_TOO_MANY_REDIRECTS), או שהחיבור בין Cloudflare לשרת לא מאובטח.
ל-Cloudflare יש כמה מצבי הצפנה, ביניהם Off, Flexible, Full ו-Full (strict). לפי התיעוד שלהם, לולאות הפניה נוצרות כשהשרת שלך מפנה אוטומטית כל בקשת HTTP ל-HTTPS, והפתרון הוא להסיר את ההפניה מהשרת או לשנות את מצב ההצפנה ל-Full ומעלה. המצב Full (strict) דומה ל-Full, ומוסיף אימות של התעודה בשרת המקור, ולכן הוא מתאים כשבשרת מותקנת תעודה תקינה. כדי להפנות את כל הגולשים ל-https מתוך Cloudflare, יש אפשרות בשם Always Use HTTPS. אם אתה לא בטוח שהתקלה בכלל קשורה ל-Cloudflare ולא לשרת עצמו, כתבתי על זה במדריך Cloudflare תקלה.
בדיקה סופית: Site Health ו-HSTS
אחרי התיקונים כדאי לעבור על כמה עמודים מרכזיים: עמוד הבית, עמוד שירות, טופס יצירת קשר ועמוד עם הרבה תמונות. בכל אחד מהם בודקים:
- שהכתובת מתחילה ב-https.
- שכרום לא מסמן אותו כאתר לא מאובטח.
- שאין אזהרות בלשונית Console.
אם האתר מקבל תנועה מגוגל, שווה לוודא שההפניות עובדות גם לכתובות הישנות שכבר באינדקס. על הצד הזה כתבתי גם במאמר איך להביא תנועה אורגנית לאתר.
אחר כך נכנסים בוורדפרס ל-Tools > Site Health. אחת הבדיקות שם בודקת אם האתר מגיש את התוכן ב-HTTPS, כך שתראה שם אם משהו עדיין לא מסתדר.
כשהכול עובד ויציב, אפשר לשקול HSTS. לפי web.dev, זו כותרת שאומרת לדפדפנים להתחבר לשרת שלך תמיד ב-HTTPS, גם כשהם מגיעים מקישור שמתחיל ב-http. כדאי לעשות את זה רק אחרי שכל האתר, כולל תת הדומיינים, עובד ב-https, כי מהרגע הזה דפדפנים שביקרו באתר לא יתחברו אליו ב-http.
מתי לעצור ולקרוא למומחה
- אחרי שינוי הכתובת ב-Settings > General אין לך גישה ללוח הבקרה.
- האתר נכנס ללולאת הפניות ואתה לא מוצא מאיפה היא מגיעה.
- צריך החלפה גורפת של כתובות בבסיס הנתונים ואין לך ניסיון בזה.
- אין לך גישה ללוח הבקרה של האחסון או לחשבון Cloudflare.
- האתר הוא חנות פעילה, וכל שינוי בכתובות או בהפניות עלול לפגוע בתהליך התשלום ובהזמנות שנכנסות.
- כרום מציג את האתר כ"מסוכן". לפי כרום זה אומר שהאתר סומן כלא בטוח על ידי Safe Browsing, וזו כבר בעיה אחרת לגמרי.
אם ניסית ועדיין כרום מציג אצלך אתר לא מאובטח, אני מטפל בזה, מהתעודה ועד הקישור האחרון שנטען ב-http.
שאלות נפוצות
האם המעבר ל-https יפגע באתר בגוגל?
גוגל מתייחסת למעבר מ-HTTP ל-HTTPS כהעברת אתר עם שינוי כתובות, וממליצה על הפניות קבועות כמו 301. לפי גוגל, הפניות קבועות לא גורמות לאובדן PageRank.
איזה מצב SSL לבחור ב-Cloudflare?
אם בשרת מותקנת תעודה תקינה, Full (strict). מצב Flexible יחד עם הפניה ל-https בשרת הוא מקור מוכר ללולאת הפניות, ו-Cloudflare ממליצה במקרה כזה לעבור ל-Full ומעלה.
