Really Simple SSL


Really Simple SSL automatically detects your settings and configures your website to run over https.
To keep it lightweight, the options are kept to a minimum. The entire site will move to SSL.

Three simple steps for setup:

  • Get an SSL certificate (can’t do that for you, sorry).
  • Activate this plugin
  • Enable SSL with one click

Always backup before you go! If you do not have a sound backup policy, start having one! See our recommendations.

Really Simple SSL is on GitHub as well!

Love Really Simple SSL?

Hopefully this plugin save you some hours of work. If you want to support the continuing development of this plugin, you might consider buying the premium, which includes
some cool features.

Pro features

  • The mixed content scan, which shows you what you have to do if you don’t have the green lock yet
  • The option to enable HTTP Strict Transport Security
  • The option to configure your site for the HSTS preload list
  • Mixed Content Fixer for the back-end
  • More detailed feedback on the configuration page.
  • 检察认证的到期时间: 当你的 SSL 认证快过期时请求取一电子邮件。
  • Premium support

What does the plugin actually do

  • The plugin handles most issues that WordPress has with SSL, like when you’re behind a reverse proxy/loadbalancer, or when no headers are passed which WordPress can use to detect SSL.
  • 所有新进的请求将导向到https. 预设内部WordPress导向,但你也可以用一个.htaccess导向。
  • The site url and home url are changed to https.
  • Your insecure content is fixed by replacing all http:// urls with https://, except hyperlinks to other domains. Dynamically, so no database changes are made (except for the siteurl and homeurl).

contact me if you have any questions, issues, or suggestions. Really Simple SSL is developed by Really Simple Plugins.

Like to have this plugin in your language?

Translations can be added very easily here. If you do, I can get you added as translation editor to approve the translations.


  • After activation, if SSL was detected, you can enable SSL.
  • View your configuration on the settings page


To install this plugin:

  1. Make a backup!
  2. Install your SSL certificate
  3. Download the plugin
  4. Upload the plugin to the wp-content/plugins directory,
  5. Go to “plugins” in your WordPress admin, then click activate.
  6. You will now see a notice asking you to enable SSL. Click it and log in again.



To install this plugin:

  1. Make a backup!
  2. Install your SSL certificate
  3. Download the plugin
  4. Upload the plugin to the wp-content/plugins directory,
  5. Go to “plugins” in your WordPress admin, then click activate.
  6. You will now see a notice asking you to enable SSL. Click it and log in again.
Knowledge base

For more detailed explanations and documentation on redirect loops, deactivating, mixed content, errors, and so on, please search the documentation

Does the mixed content fixer make my site slower?

On a site where the source consists of about 60.000 characters, the delay caused by the mixed content fixer is about 0.00188 seconds. If this is too much for you, fix the mixed content manually and deactivate it in the settings.

Uninstalling Really Simple SSL

The plugin checks your certificate before enabling, but if, for example, you migrated the site to a non-ssl environment, you might get locked out of the back-end.
If you can’t deactivate, do not just remove the plugin folder to uninstall! Follow these instructions.

Mixed content issues

Most mixed content issues are caused by urls in css or js files.
For detailed instructions on how to find mixed content read this article.

Redirect loop issues

If you are experiencing redirect loops on your site, try these instructions.


是的。有一专用的网路设定网页你可以介于 网路启动 SSL 以及每页 SSL 之间切换。在给多重网站的插件的专用 pro 里,你可以忽略在网际网路阶层上所有为SSL做的网站设定,并可以在每站的网路目录启动和关闭 SSL 。 * Really Simple SSL它在 维持了一个大量的知识库。



Pretty easy to set up and gives me the confidence that I’m secure. Wayyyy worth the money for the pro version vs. me trying to do this myself.



Switched to Let’s Encrypt free SSL today and I was worried about the daunting task of switching everything over to SSL.

Installed the plugin, one click and it’s working perfectly.

Thank you.

Read all 352 reviews

Contributors & Developers

“Really Simple SSL” is open source software. The following people have contributed to this plugin.


“Really Simple SSL” has been translated into 16 locales. Thank you to the translators for their contributions.

Translate “Really Simple SSL” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix: multisite menu not showing when main site is not SSL.
  • Fix: the admin_url and site_url filter get an empty blog_id when checking the URL for the current blog.
  • Tweak: added comment to encourage backing up to activation notice.
  • Tested the plugin with Gutenberg.


  • Fix: “switch mixed content fixer hook” option not visible on the multisites settings page
  • Tweak: several typo’s and uppercasing


  • Fix: On multisite, admin_url forced current blog URL’s over http even when the current blog was loaded over https. This will now only force http for other blog_urls than the current one, when they are on http and not https.


  • Tested up to WP 4.9
  • Added secure cookie notice


  • 更改的混合内容从wp_print_footer_scripts 挂回关闭


  • 修护了在档案路径里的双斜线
  • 修护在启动通知里的错字
  • 微调:加入选项到未冲刷掉的重写规则
  • 修护:当FORCE_SSL_ADMIN被定义,避免强制 admin_url 到http


  • 微调: 设定为切换混合内容修护挂勾从暂时重导到初始
  • 修护: 在多重网站上唠叨无法适当的移除


  • 多重网站修护;由于一并入的admin_url and site_url 过滤器被删除了,请重新加入它们
  • 加入常数RSSSL_CONTENT_FIXER_ON_INIT 所以使用者才会为混合内容而持续使用这初始挂钩。


  • 微调: 移除JetPack fix,因为它现在并在JetPack 里
  • 微调: 移动混合内容修复器挂钩到 template_redirect
  • 修复: 更改了冲刷重写规则挂钩从 admin_init 为关闭,在 SSL 启动上。
  • 多重网站修复: 更改功能如检视 admin_url 及 site_url 是否应转回 http 或 https 来检查在home_url 中的 https 。
  • 微调: 明确指示混合内容修复器所拒绝的 json and xmlrpc 请求


  • 微调: 在多重网站的 home_url 以及site_url 加入一功能以检示当SSL在每站的基台被使用是否应该为 http 或 https
  • 微调:加入通知以说明当 Really Simple SSL 逐站启动时将不会有网路目录。
  • 微调: 为新的多重网站加入挂钩这样新网站就会在网际网路启动时像 SSL 般启动
  • 微调:限制JetPack 在埠80的名单微调到反转proxy 伺服器。
  • 微调: 新建一专用的 rest Ali 导向常数以防使用者要避免rest api从重导向到https.
  • 修复:在多重网站上的解除SSL启动通知运作不常


  • 反转 wp_safe_redirect 成 wp_redirect, 因为wp_safe_redirect 产生一个导向到 wp-login.php 即使主url 是domain.com以及请求url 是


  • 没有功能性上的改变,版本改变是因为 WordPress 没有执行版本更新的动作。


  • 修护:在混合内容修护器修护问题其中优化的 html 配对会配合交叉元素
  • 以wp_safe_redirect更换wp_redirect
  • 在wp_rest_api加入强制SSL


  • Tweak: configuration more function


  • Added multisite settings page
  • Added filter for .htaccess code output
  • Increased user capability to “activate_plugins”
  • Added SSL_FORWARDED_PROTO = 1 in addition to SSL_FORWARDED_PROTO = on as supported SSL recognition variable.


  • Removed curl in favor of wp_remote_get


  • Fastest cache compatibility fix


  • Multisite tweaks


  • Removed automatic insertion of .htaccess redirects. The .htaccess redirects work fine for most people, but can cause issues in some edge cases.
  • Added option to explicitly insert .htaccess redirect
  • Added safe mode constant RSSSL_SAFE_MODE to enable activating in a minimized way
  • Fix: RLRSSSL_DO_NOT_EDIT_HTACCESS constant did not override setting correctly when setting was used before.
  • Dropped cache flushing on activation, as this does not always work as expected


  • Tweak: changes testurl to the function test_url()


  • version nr fix


  • Reverted some changes to 2.4.3, as it was causing issues for some users.


fix: Adjusted selection order of .htaccess rules, preventing redirect loops


  • Changed .htaccess redirects to use only one condition


  • removed file_get_contents function from class_url.php, as in some cases this causes issues.


  • Added help tooltips
  • Fix: typos in explanations
  • Added detected server to debug Log
  • Added test folder for CloudFlare
  • Added htaccess redirect to use all available server vars for checking SSL.


  • Tweak: Improved support for cloudflare
  • Tweak: Added support for Cloudfront, thanks to Sharif Alexandre
  • Fix: Prevent writing of empty .htaccess redirect
  • Tweak: Added option for 301 internal wp redirect
  • Tweak: Improved NGINX support
  • Tweak: Added support for when only the $_ENV[HTTPS] variable is present
  • Fix: Mixed content fixing of escaped URLS


  • Removed banner in admin


  • Tweak: Added reload over https link for when SSL was not detected
  • Fixed: After reloading page when the .htaccess message shows, .htaccess is now rewritten.
  • Tweak: Removed Yoast notices
  • Tested for WP 4.7
  • Fixed: bug where network options were not removed properly on deactivation
  • Tweak: Changed mixed content marker to variation without quotes, to prevent issues with scripting etc.


  • Tweak: improved HSTS check


  • Fixed: added a version check on wp_get_sites / get_sites to get rid of deprecated function notice, and keep backward compatibility.
  • Fixed: A bug in multisite where plugin_url returned a malformed url in case of main site containing a trailing slash, and subsite not. Thanks to @gahapati for reporting this bug.
  • Tweak: Added button to settings page to enable SSL, for cases where another plugin is blocking admin notices.
  • Tweak: Rebuilt the mixed content fixer, for better compatibility
  • Tweak: Improved the mixed content marker on the front-end, so it’s less noticeable, and won’t get removed by minification code.


  • Fixed: Clearing of WP Rocket cache after SSL activation causing an error
  • Fixed: Clearing of W3TC after SSL activation did not function properly


  • Re-inserted Jetpack fix.


  • Requires at least changed back to 4.2, as the function that this was meant for didn’t make it in current release yet.


  • Improved request method in url class
  • Added check if .htaccess actually exists in htaccess_contains_redirect_rules()
  • Made activation message more clear.


  • Tested for 4.6
  • Tweak: changed check for htaccess redirect from checking the RSSSL comments to checking the redirect rule itself
  • Fix: htaccess not writable message not shown anymore when SSL not yet enabled
  • Tweak: extended mixed content fixer to cover actions in forms, as those should also be http in case of external urls.
  • Tweak: added safe domain list for domains that get found but are no threat.
  • Tweak: added filter for get_admin_url in multisite situations, where WP always returns an https url, although the site might not be on SSL
  • Tweak: htaccess files and wpconfig are rewritten when the settings page is loaded


  • Fix: removed internal WordPress redirect as it causes issues for some users.
  • Tweak: improved url request method


  • Tweak: Fallback redirect changed into internal wp redirect, which is faster
  • Tweak: When no .htaccess rules are detected, redirect option is enabled automatically
  • Tweak: Url request falls back to file_get_contents when curl does not give a result


  • Updated screenshots


  • Fixed: missing priority in template_include hook caused not activating mixed content fixer in some themes


  • Fixed: javascript redirect insertion


  • Tweak: load css stylesheet only on options page and before enabling ssl
  • Tweak: mixed content fixer triggered by is_ssl(), which prevents fixing content on http.
  • Start detection and configuration only for users with “manage_options” capability


  • Fixed bug in force-deactivate script


  • Changed SSL detection so test page is only needed when not currently on SSL.
  • Some minor bug fixes.


  • Removed “activate ssl” option when no ssl is detected.
  • Optimized emptying of cache
  • Fixed some bugs in deactivation and activation of multisite


  • Gave more control over activation process by explicitly asking to enable SSL.
  • Added a notice if .htaccess is not writable


Fixed a bug in SSL detection


Changed followlocation in curl to an alternative method, as this gives issues when safemode or open_basedir is enabled.
Added dismissable message when redirects cannot be inserted in the .htaccess


Fixed bug in logging of curl detection


Security fixes in ssl-test-page.php


Bugfix with of insecure content fixer.


Added a check if the mixed content fixer is functioning on the front end
Fixed a bug where multisite per_site_activation variable wasn’t stored networkwide
Added clearing of wp_rocket cache thans to Greg for suggesting this
Added filter so you can remove the really simple ssl comment
Fixed a bug in the output buffer usage, which resolves several issues.
Added code so JetPack will run smoothly on SSL as well, thanks to Konstantin for suggesting this


  • To prevent lockouts, it is no longer possible to activate plugin when wp-config.php is not writable. In case of loadbalancers, activating ssl without adding the necessary fix in the wp-config would cause a redirect loop which would lock you out of the admin.
  • Moved redirect above the WordPress rewrite rules in the htaccess file.
  • Added an option to disable the fallback javascript redirection to https.


Brand new content fixer, which fixes all links on in the source of your website.


  • Roll back of mixed content fixer.


Improved the mixed content fixer. Faster and more effective.


Edited the wpconfig define check to prevent warnings when none are needed.


  • Extended detection of homeurl and siteurl constants in wp-config.php with regex to allow for spaces in code.
  • Changed text domain to make this plugin language packs ready
  • Added 404 detection to SSL detection function, so subdomains can get checked properly on subdomain multisite installs


Added slash in redirect rule
small bugfixes


documentation update


  • Added multisite support for the missing https server variable issue
  • Improved curl connection script
  • Added French translation thanks to Cedric


  • Small bug fixes


  • Added per site activation for multisite, but excluded this option for subfolder installs.
  • Added script to easily deactivate the plugin when you are locked out of the WordPress admin.
  • Added support for a situation where no server variables are given which can indicate SSL, which can cause WordPress to generate errors and redirect loops.
  • Removed warning on WooCommerce force SSL after checkout, as only unforce SSL seems to be causing problems
  • Added Russian translation, thanks to xsascha
  • Improved redirect rules in the .htaccess
  • Added option te disable the plugin from editing the .htaccess in the settings
  • Fixed a bug where multisite would not deactivate correctly
  • Fixed a bug where insecure content scan would not scan custom post types


  • Made WooCommerce warning dismissable, as it does not seem to cause issues
  • Fixed a bug caused by WP native plugin_dir_url() returning relative path, resulting in no SSL messages


  • Fixed a bug where example .htaccess rewrite rules weren’t generated correctly
  • Added WooCommerce to the plugin conflicts handler, as some settings conflict with this plugin, and are superfluous when you force your site to SSL anyway.
  • Excluded transients from mixed content scan results


  • Fixed a bug where script would fail because curl function was not installed.
  • Added debug messages
  • Improved FAQ, removed typos
  • Replaced screenshots


  • Improved user interface with tabs
  • Changed function to test SSL test page from file_get_contents to curl, as this improves response time, which might prevent “no SSL messages”
  • Extended the mixed content fixer to replace src=”http:// links, as these should always be https on an SSL site.
  • Added an error message in case of force rewrite titles in Yoast SEO plugin is used, as this prevents the plugin from fixing mixed content


  • Added support for loadbalancer and is_ssl() returning false: in that case a wp-config fix is needed.
  • Improved performance
  • Added debugging option, so a trace log can be viewed
  • Fixed a bug where the rlrsssl_replace_url_args filter was not applied correctly.


  • Fixed an issue where in some configurations the replace url filter did not fire


  • Added the force SSL option, in cases where SSL could not be detected for some reason.
  • Added a test to check if the proposed .htaccess rules will work in the current environment.
  • Readded HSTS to the htaccess rules, but now as an option. Adding this should be done only when you are sure you do not want to revert back to http.


  • Improved instructions regarding uninstalling when locked out of back-end


  • Removed HSTS headers, because it is difficult to roll back.


  • Added the possibility to prevent htaccess from being edited, in case of redirect loop.


  • Refined SSL detection
  • Bugfix on deactivation of plugin


  • Fixed an SSL detection issue which could lead to redirect loop


  • Improved redirect rules for .htaccess


  • Now plugin only changes .htaccess when one of three preprogrammed ssl types was recognized.
  • Simplified filter use to add your own urls to replace, see f.a.q.
  • Default javascript redirect when .htaccess redirect does not succeed


  • Fixed bug where number of options with mixed content was not displayed correctly


  • limited the number of files, posts and options that can be show at once in the mixed content scan.


  • Added version control to the .htaccess rules, so the .htaccess gets updated as well.
  • Added detection of loadbalancer and cdn so .htaccess rules can be adapted accordingly. Fixes some redirect loop issues.
  • Added the possibility to disable the auto replace of insecure links
  • Added a scan to scan the website for insecure links
  • Added detection of in wp-config.php defined siteurl and homeurl, which could prevent from successful url change.
  • Dropped the force ssl option (used when not ssl detected)
  • Thanks to Peter Tak, PTA security for mentioning the owasp security best practice in .htaccess,


  • Added 301 redirect to .htaccess for seo purposes


  • Fixed some typos in readme
  • added screenshots
  • fixed a bug where on deactivation the https wasn’t removed from siturl and homeurl


  • Added SSL detection by opening a page in the plugin directory over https
  • Added https redirection in .htaccess, when possible
  • Added warnings and messages to improve user experience
  • Added automatic change of siteurl and homeurl to https, to make backend ssl proof.
  • Added caching flush support for WP fastest cache, Zen Cache and W3TC
  • Fixed bug where siteurl was used as url to fix instead of homeurl
  • Fixed issue where url was not replaced on front end, when used url in content is different from home url (e.g. as homeurl and in content)
  • Added filter so you can add cdn urls to the replacement script
  • Added cdn to standard replacement script, as it is often used without https.


  • Improved installation instructions