Have you ever installed an SSL certificate and cannot see your site redirecting to HTTPS protocol? This time I’m going to show you how to redirect from HTTP to HTTPS for any application using the technologies I’ll describe below.
Table of contents
First of all, you need to know what is an SSL certificate, how to install it, is it easy or really hard, we have compiled different methodologies to create it, please review our blog about it here: Install SSL Certificate tutorial.
Now, what are the benefits of using a SSL Certificate?
- Better positioning on Search Engines (Google, Bing, Yahoo)
- Extended security for your application
- Encrypted communication between client and server
- Build Trust with customers
- Safe Browsing
Types of Certificates
- Extended Validation Certificates:
- Organization Validated Certificates.
- Domain Validated Certificates.
- Single Domain Certificates.
- Wildcard SSL Certificate.
- Multi Domain SSL Certificate:
- Unified Communications Certificate
There are different options to obtain a FREE SSL Certificate:
If you want to learn more about how to install any of these, please take a look at this post.
How to Redirect traffic from HTTP:// to HTTPS://
Using Cloudflare:
1. Make sure Cloudflare is enabled for your site.
2. On the Crypto section, make sure to mark the right option.
If you need FULL, Flexible or FULL Strict setting. You can find more information about its use cases here.
3. Scroll down on the Crypto session and look for this option to be enabled:
Doing this you won’t have the need to add anything on your server configuration on Apache or Nginx. This is a great way to do it as Cloudflare gets in charge of the proxy settings!
Using Apache:
- # Ensure that Apache listens on port 80
- <VirtualHost *:80>
- DocumentRoot “/www/example1”
- ServerName www.example.com
- ServerAlias example.com
- # Other directives here
- #Redirect to 443/HTTPS Protocol
- RewriteEngine On
- RewriteCond %{HTTPS} !=on
- RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
- </VirtualHost>
- <VirtualHost *:443>
- DocumentRoot “/www/example1”
- ServerName www.example.com
- ServerAlias example.com
- # Other directives here
- </VirtualHost>
Using htaccess:
- RewriteEngine On
- RewriteCond %{HTTPS} !=on
- RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Using Nginx:
- server {
- #===============================
- # Redirect Configuration
- #===============================
- listen 80;
- server_name example.com;
- return 301 https://example.com$request_uri;
- }
- server {
- #===============================
- # SSL Configuration
- #===============================
- listen 443;
- server_name example.com;
- }
Obtaining a SSL certificate is not an option now. Is a must if you want your site to
obtain the different benefits that a SSL provides. On this blog I showed you how to obtain a certificate with 3 different entities and how to redirect your traffic to the SSL.