nginx : force all pages to be SSL

With man-in-the-middle attacking becoming more frequent like government censorship. It would be a good idea to server all web pages through SSL channels to minimize man-in-the-middle attack. To do so, you need to redirect all non SSL page to SSL page with Nginx and to achieve this with Nginx, add this line into the server block

rewrite ^ https://$server_name$request_uri? permanent;

just right below the server_name

Remember, just put this line once in the non-SSL server block and NOT in the SSL server block as this will cause infinite loop.

  See also : nginx: [emerg] unknown directive "ssl"

By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.