Berikut cara memaksa agar semua akses HTTP (default port 80) pada webserver yang kita miliki agar teralihkan ke HTTPS khususnya pada Amazon Cloud Services EC2 instance (walaupun cara ini bisa digunakan juga secara umum karena force ini bersifat standar)
Jika menggunakan Apache, Maka edit file apache virtualhost configuration dan tambahkan baris berikut:
<VirtualHost *:80> ... RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} </VirtualHost>
Jika menggunakan NGINX, maka tambahkan baris berikut
server { listen 80; ... location / { if ($http_x_forwarded_proto != 'https') { rewrite ^ https://$host$request_uri? permanent; } } }
Jika menggunakan IIS maka ubah file web.config dan tambahkan baris berikut:
<rewrite> <rules> <rule name="AWS ELB Forece Redirect to HTTPS" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions> <add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$" ignoreCase="false" /> </conditions> <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" /> </rule> </rules> </rewrite>
Silahkan dicoba dan test dengan menggunakan browser!