There are a handful of reasons why SSL may not be working for your site on Cloudflare:
Your domain/sub-domain is not active on Cloudflare’s network
Cloudflare’s SSL will only be present for visitors to your website after you have validated the SSL certificates to your root or www DNS record by orange clouding () these records in your dashboard. If the DNS record is grey clouded () then the Cloudflare-issued SSL certificates will not be present.
You've signed up through a hosting provider and are at the free level of service
As of July 18 2016 Universal SSL is available to Free plan customers who have signed up with a hosting partner. Please contact your hosting partner to submit a request to have Universal SSL activated. If your hosting partner does not yet offer this feature, share this link with them : How do I enable Universal SSL for my customers?
Your current Cloudflare SSL setting is set to the wrong option
If you don't understand what all the options do, you may want to first read What do the SSL options mean?. However, in a nutshell:
- if you do not have a SSL certificate on your origin server, or simply can’t use port 443 for web traffic, then you will need to use the Flexible setting in your Cloudflare dashboard. Selecting either the Full or Strict setting without a SSL certificate at your server will result in a 525/526 error
- Selecting Flexible when your origin has a redirect from http to https leads to a redirect loop (see also Fixing redirect loops when using Flexible SSL). In this case, assuming there is an SSL certificate at the origin, you should use Full or Full(strict).
- If you know you have an SSL certificate at your server (even self-signed), then you can use Full setting.
- If you have a valid certificate issued by a trusted certificate authority, using strict mode provides additional defense against Man in the middle attacks, and more trust between your web server and our edge.
You're accessing a subdomain not covered by the Cloudflare-issued SSL certificate
Cloudflare-issued SSL certificates cover the root-level domain (eg-
example.com) and one level of subdomains (eg-
*.example.com). If you're attempting to access a second level of subdomains (eg-
*.*.example.com) through Cloudflare using the Cloudflare-issued certificate, a HTTP 403 error will be seen in the browser as these host names are not present on the certificate. If you need to have SSL working for these type of host names you would either need to purchase a Dedicated Certificate with Custom Hostnames through Cloudflare, purchase your own SSL cert and upload it to us as a Custom SSL Certificate or grey-cloud this DNS record so the traffic goes directly to your origin server.
The Cloudflare-issued SSL certificate is not yet active for your domain
When you first sign up your domain with Cloudflare, The Cloudflare-issued SSL certificates may have not yet been issued. Please allow 15 minutes (on paid plans) or 24 hour (on our Free plan) for this process to complete. You will know if your SSL certificates are active through your CloudFlare dashboard under the Crypto tab.
SSL on a CNAME-Setup
If you are on the Business or Enterprise level of service with a CNAME setup, you will need to add three CNAME records at your authoritative DNS provider to authenticate the SSL certificates for your domain. You will receive these CNAME records by contacting Cloudflare Support.
Your domain triggered a brand-check
If your website name has a brand or country name in it (ex. eBay, Georgia, Iran, etc.) then the Cloudflare Certificate Partner will require additional information about your business to verify that there is no misappropriate usage of a brand/country name. You will need to contact Cloudflare Support about resolving this issue.
Universal SSL is disabled on the domain
If you've disabled Universal SSL on your domain under the Crypto section and aren't using a Dedicated SSL or have uploaded a Custom SSL to Cloudflare you'll see SSL errors for your domain when using Cloudflare. Simply re-enabled Universal SSL if you don't want to upgrade or purchase a Dedicated SSL certificate for the domain.