איך לחייב גישה באמצעות SSL ב-Apache ?

אם אתה מחפש דרך להפנות את כל הבקשות שמגיעות אל http://www.yoursite.com אל https://www.yoursite.com , הגעת למאמר הנכון.

ישנן הרבה הצעות , שמסתמכות על htaccess, השיטה הבאה מתבססת על תנאי ה-httpd.conf (ב-Ubuntu זה הקובץ בשם האתר שלך, תחת תיקית /etc/apache2/sites-avilable ).

מה שצריך לעשות הוא פשוט להוסיף את הקטע הבא לפני ההגדרה של ה-Virtual Host דרך פורט 443 :


        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

כך שבסופו של דבר זה נראה כך :


        RewriteEngine on
        ReWriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

 

        ServerAdmin contact@yourwebsite.com
 
        DocumentRoot /var/www/public
 
        SSLEngine On
        SSLCertificateFile    /etc/apache2/ssl/mycert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
 
        

הסבר : הוספנו בעצם Virtual Host על פורט 80 כך שכל בקשה שמגיעה אליו תנותב דרך התנאי RewriteCond אל https בפורט 443.

כמובן שצריך בסוף לעשות Restart לשירות ה-Apache

sudo service apache2 restart

בהצלחה!

מקור : http://blog.edwards-research.com/2010/02/force-apache2-to-redirect-from-http-to-https/

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *