Flex SSL

Wopisanje

Flex SSL is a lightweight WordPress plugin designed to secure your website by enforcing HTTPS across your entire site. Key features include:

  • Force HTTPS: Automatically redirect all HTTP requests to HTTPS. Encoded and non-ASCII permalinks are preserved. Alias hosts fall back to the WordPress home URL.
  • Auto-Update URLs: Change WordPress site and home URLs from HTTP to HTTPS, with a stored backup you can revert.
  • Cloudflare/Proxy Support: Detects HTTPS headers from Cloudflare, Azure, CloudFront, and other reverse proxies to avoid redirect loops.
  • Security Headers: Optionally add HSTS (includeSubDomains is optional), X-Frame-Options, X-Content-Type-Options, and Referrer-Policy.
  • Mixed Content Fixer: Rewrites this site’s HTTP URLs to HTTPS in content, excerpts, attachments, srcset, scripts, and styles. External links are left unchanged. Tools can scan the front page for leftovers.
  • SSL Status: View certificate expiry, issuer, subject names, trust, and hostname match. Optional admin notices and email before expiry.
  • Redirect Options: Choose between 301 (permanent) and 302 (temporary) for GET. Non-GET requests use 307.
  • Logs, Tools, and Site Health: Monitor changes, test HTTPS, and see Flex SSL tests in Tools Site Health.
  • Recovery: FLEX_SSL_DISABLE in wp-config.php, Tools Revert URLs, and wp flex-ssl disable / wp flex-ssl revert-urls.

On Multisite, settings and URL updates are per site.

License

Flex SSL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

For more details, see https://www.gnu.org/licenses/gpl-2.0.html.

Fota wobrazowki

Instalacija

  1. Upload the flex-ssl folder to your /wp-content/plugins/ directory or install via the WordPress plugin installer.
  2. Activate the plugin through the WordPress admin.
  3. Navigate to Flex SSL Settings from the admin menu.
  4. Confirm the site loads over HTTPS (host panel, Cloudflare Full, or similar).
  5. Turn on Enable SSL, then Force HTTPS and Update Site URL. Use the proxy override if HTTPS is terminated in front of WordPress.

HSP

Does Flex SSL work behind Cloudflare?

Yes. Flex SSL supports reverse proxy configurations including Cloudflare’s Flexible and Full SSL modes by detecting proxy headers. For Flexible SSL, enable “HTTPS is terminated at a proxy” before turning on Force HTTPS.

Do I need to modify wp-config.php?

No. Flex SSL works without wp-config.php changes. If you get locked out, add define( 'FLEX_SSL_DISABLE', true ); to stop all Flex SSL runtime hooks.

How do I generate an SSL certificate?

Flex SSL does not issue certificates. Use your host panel, Cloudflare, or Let’s Encrypt on the server, then use this plugin to enforce HTTPS and watch expiry.

What happens if SSL is not installed on my server?

The plugin checks for a certificate and shows a warning. You can still enable features if HTTPS is terminated at a proxy. Force HTTPS to this origin needs a working certificate.

I cannot reach wp-admin after enabling Force HTTPS.

Add define( 'FLEX_SSL_DISABLE', true ); to wp-config.php, or run wp flex-ssl disable and wp flex-ssl revert-urls. Fix HTTPS, then remove the constant.

Pohódnoćenja

Za tutón tykač pohódnoćenja njejsu.

Sobuskutkowarjo a wuwiwarjo

„Flex SSL“ je softwara wotewrjeneho žórła. Slědowacy ludźo su k tutomu tykačej přinošowali.

Sobuskutkowarjo

Protokol změnow

1.2.0

  • Preserve percent-encoded and non-ASCII URLs on HTTPS redirects.
  • Redirect alias hosts to the WordPress home URL instead of wp-admin.
  • Use 307 for POST and other non-GET requests; add X-Redirect-By: Flex SSL.
  • Detect more reverse-proxy HTTPS headers (Azure, CloudFront, X-Forwarded-SSL).
  • Pause Force HTTPS for a visitor after a detected redirect loop.
  • HTTPS probe before enabling Force HTTPS or Update Site URL, with a proxy override.
  • Remember previous site URLs and restore them from Tools or WP-CLI.
  • Kill switch: define( ‚FLEX_SSL_DISABLE‘, true ); in wp-config.php.
  • Optional HSTS includeSubDomains (existing HSTS users keep it on).
  • Align Referrer-Policy with Flex Website Security.
  • Certificate issuer, SANs, trust, hostname match, daily expiry notices, and optional email.
  • Tools screen: HTTPS test, certificate re-check, mixed content scan, revert URLs.
  • Site Health tests and WP-CLI: wp flex-ssl disable|enable|revert-urls|status|probe.
  • Removed the Let’s Encrypt „coming soon“ promise. Multisite is per site.

1.1.2

  • Tested up to WordPress 7.1.
  • About FLEX uses current suite names, including Flex SEO and SMM, Flex Website Security, and Flex Maintenance.

1.1.1

  • List flexfields and hovoqoch as contributors.
  • About FLEX links the full suite, including Flex Shortcodes.

1.1.0

  • Admin UI aligned with Flex Redirects: header, pill navigation, stats, and cards.
  • Settings, Logs, and Usage are now separate screens.
  • Enable SSL is now a master switch for all other features.
  • Force HTTPS runs early so wp-admin and wp-login.php are redirected, not only the front end.
  • Force SSL Admin uses force_ssl_admin() (the FORCE_SSL_ADMIN constant is already defined before plugins load).
  • HSTS is sent only over HTTPS, without preload.
  • Mixed content fixer rewrites same-host URLs only, including attachments and srcset.
  • Certificate-not-found is a warning, not a lock on the settings.
  • Logs record setting changes and rate-limited HTTPS redirects.
  • Tested up to WordPress 7.0. Plugin Check cleanup (hidden files, prefixes, sanitization).

1.0.12

  • Updated plugin author to FLEX (https://flexible.am/).

1.0.11

  • Limit readme tags to 5 for WordPress.org.

1.0.10

  • Cleaned plugin icon top border and cropped banner footer for sharper WordPress.org assets.

1.0.9

  • Updated WordPress.org banner and icons to the Flex family branding.

1.0.8

  • WordPress.org compatibility: Tested up to 6.8.
  • Ensure all output strings use esc_html, esc_attr, esc_url (Recent Logs, Clear Logs, About link, nav-tab class).
  • uninstall.php and index.php already present (confirmed).

1.0.7

  • UX: Added labels for all checkboxes (accessibility).
  • UX: Added short help text for Update Site URL, HSTS, WooCommerce Safe Mode, and other options.
  • UX: SSL certificate expiry now shows relative text (e.g. „Expires in 30 days“).

1.0.6

  • Added load_plugin_textdomain for i18n (plugins_loaded).
  • Added index.php in plugin root for security.
  • Added uninstall.php to remove options on uninstall.
  • Replaced Clear Logs location.reload with wp_safe_redirect (handler moved to admin_init).

1.0.5

  • Fixed tab redirect after save: add flex_ssl_active_tab and flex_ssl_nonce hidden fields to forms; use wp_redirect filter.

1.0.4

  • Mixed Content Fixer: Extended to the_excerpt, post_thumbnail_url, script_loader_src, style_loader_src, content_url, home_url.

1.0.3

  • Performance: Cache is_ssl_available() result (1 hour transient) to avoid repeated socket connections.
  • Performance: Site URL updates run at most once per 24 hours; transient invalidated when option is changed.

1.0.2

  • Security: Validate Host header to prevent header injection (redirects, SSL checks).
  • FORCE_SSL_ADMIN is now optional and only set when SSL is in use.
  • Removed deprecated X-XSS-Protection header (modern browsers deprecate it).

1.0.1

  • Fixed option typo: flex_ssl_flex_ssl_woo_safe_mode renamed to flex_ssl_woo_safe_mode.
  • WooCommerce Safe Mode now respects the setting (was always redirecting).
  • Fixed logs option: custom sanitizer for array storage (was incorrectly using wp_kses_post).
  • Added Logs tab to settings page (logs_settings existed but tab was missing).

1.0.0

  • Initial release of Flex SSL.
  • Force HTTPS on front-end.
  • Auto-update site URLs to HTTPS.
  • Cloudflare and reverse proxy support.
  • Security headers and mixed content fixer.
  • SSL status and logs.
  • (Coming Soon) Let’s Encrypt integration for automatic SSL generation.