WordPress SSL issues can drive you nuts sometime. If you are migrating your WordPress installation to new server. You are most probably going to have this issue to face. Basically this solution is for fixing ERR_SSL_PROTOCOL_ERROR in WordPress installation without https:// protocol. Let’s assume the situation first how you get this problem. First of all assume you were using SSL https:// protocol in your previous old installation. However after migration your website to new installation which does not have support for https:// protocol and work only with http:// protocol. You are going to have this issue ERR_SSL_PROTOCOL_ERROR.
What ERR_SSL_PROTOCOL_ERROR means?
Actually this error ERR_SSL_PROTOCOL_ERROR simply means that your installation or hosting or domain registrar does not support https:// protocol for your installation. While you know this but your server somehow forcing your website to load under https:// protocol and your server refusing to load under https:// protocol. For this reason there is a conflict in server for some reason. Your installation is forcing to load under https:// protocol. Along that your server is refusing to load your website in https://. And forcing your website to load in http:// this conflict have no end which browser do understand. For this reason browser stop loading the website and produce ERR_SSL_PROTOCOL_ERROR error for your website to stop it load.
What you are going to do?
I am not going to make it complex for you to understand. So in real simple words you are going to stop your website being loaded in https:// protocol. So your website can work nicely in http:// protocol. And later when you have a hosting or domain supports https:// protocol you can revert back.
Things to do
Please note this issue can be fixed by any of one following troubleshoot for your WordPress website. So i recommend you to check your website with http:// protocol after each step.
Change Site URL and Home URL in phpMyAdmin
Please login your phpMyAdmin and go to your _options table. Before _ there is a prefix of database normally its wp_options but wp_ can be anything. Depends on the installer you used. Once you are in phpMyAdmin and in correct database. Edit the _options table and find site_url otpion edit its value and remove https:// and change it to http://. If its already http:// ignore this step and check for home. Find the home option and change its value protocol from https:// to http://. Again if its already http:// let it be same.
Now try to load your website if it does you are done else go to next step.
Check your .htaccess file if there is any extra code
I recommend you to access .htaccess file through FTP. In WordPress root installation you can easily find .htaccess file. Rename it to .htaccess.bk once you change its extension to .bk. This file will stop working and giving instructions to server. Now try to load your website. If your website load then follow following steps else move to next solution.
If .htaccess name change fixed problem of your website. Change its name back to .htaccess from .htaccess.bk. Download file in your computer and edit it in any code editor like notepad++. After you have downloaded and editing make sure there is just WordPress default code remove everything else. Below is view of WordPress default code. This code actually used for permalinks. If you are not using permalinks like /post-name/ then you might do not have .htaccess file. If you don’t have move to next step.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Only keep above code in .htaccess so your permalinks work properly. Remove everything else which might be included by some plugin or your old host.
Check your wp-config.php
If not any of above methods worked for you this last method should work. Please login FTP and download wp-config.php to your local computer. wp-config.php exists in WordPress root folder. After downloading edit the file and try to find the following lines.
define( 'FORCE_SSL_LOGIN', 1);
define( 'FORCE_SSL_ADMIN', 1);
Either remove these lines or change 1 to 0. Save file and upload it. Now your website should work properly. This code actually force WordPress admin panel to load in https:// protocol. It is forcing your website to load in SSL with https:// protocol. There can be more similar lines you can do same with all. As these both lines force admin panel to load in https:// protocol.
I hope this helped you. If you require any technical Support i would recommend you our WordPress maintenance service. which helps you to get high performance, error free, upto date and all time support service.