Version Description
- Updated SSL activated notice
- Updated readme
Download this release
Release Info
Developer | RogierLankhorst |
Plugin | Really Simple SSL |
Version | 3.3 |
Comparing to | |
See all releases |
Code changes from version 3.2.6 to 3.3
- assets/icon-128x128.png +0 -0
- assets/logo-really-simple-ssl.png +0 -0
- assets/wpsearchinsights.jpg +0 -0
- class-admin.php +198 -108
- class-multisite.php +12 -5
- class-server.php +1 -0
- css/main.css +36 -12
- css/main.min.css +1 -1
- force-deactivate.txt +10 -1
- readme.txt +30 -11
- rlrsssl-really-simple-ssl.php +104 -103
- ssl-test-page.php +2 -2
assets/icon-128x128.png
ADDED
Binary file
|
assets/logo-really-simple-ssl.png
ADDED
Binary file
|
assets/wpsearchinsights.jpg
ADDED
Binary file
|
class-admin.php
CHANGED
@@ -131,6 +131,7 @@ class rsssl_admin extends rsssl_front_end
|
|
131 |
- No SSL detected
|
132 |
*/
|
133 |
|
|
|
134 |
//when configuration should run again
|
135 |
if ($this->clicked_activate_ssl() || !$this->ssl_enabled || !$this->site_has_ssl || $is_on_settings_page || is_network_admin()) {
|
136 |
|
@@ -239,7 +240,7 @@ class rsssl_admin extends rsssl_front_end
|
|
239 |
//remove plugin one by one on each site
|
240 |
$sites = get_sites();
|
241 |
foreach ($sites as $site) {
|
242 |
-
|
243 |
|
244 |
$current = get_option('active_plugins', array());
|
245 |
$current = $this->remove_plugin_from_array($plugin, $current);
|
@@ -247,9 +248,7 @@ class rsssl_admin extends rsssl_front_end
|
|
247 |
|
248 |
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
|
249 |
}
|
250 |
-
|
251 |
} else {
|
252 |
-
|
253 |
$current = get_option('active_plugins', array());
|
254 |
$current = $this->remove_plugin_from_array($plugin, $current);
|
255 |
update_option('active_plugins', $current);
|
@@ -354,6 +353,8 @@ class rsssl_admin extends rsssl_front_end
|
|
354 |
|
355 |
$this->set_siteurl_to_ssl();
|
356 |
$this->save_options();
|
|
|
|
|
357 |
}
|
358 |
|
359 |
|
@@ -367,9 +368,19 @@ class rsssl_admin extends rsssl_front_end
|
|
367 |
$this->save_options();
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
|
371 |
public function wpconfig_ok()
|
372 |
{
|
|
|
373 |
if (($this->do_wpconfig_loadbalancer_fix || $this->no_server_variable || $this->wpconfig_siteurl_not_fixed) && !$this->wpconfig_is_writable()) {
|
374 |
$result = false;
|
375 |
} else {
|
@@ -412,8 +423,9 @@ class rsssl_admin extends rsssl_front_end
|
|
412 |
|
413 |
public function ssl_detected()
|
414 |
{
|
415 |
-
if ($this->site_has_ssl) {
|
416 |
-
|
|
|
417 |
<?php
|
418 |
do_action('rsssl_activation_notice_inner');
|
419 |
?>
|
@@ -456,18 +468,30 @@ class rsssl_admin extends rsssl_front_end
|
|
456 |
|
457 |
<?php _e("Some things can't be done automatically. Before you migrate, please check for: ", 'really-simple-ssl'); ?>
|
458 |
<p>
|
459 |
-
<ul>
|
460 |
-
<li><?php _e('Http references in your .css and .js files: change any http:// into //', 'really-simple-ssl'); ?></li>
|
461 |
-
<li><?php _e('Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server
|
462 |
|
463 |
-
$backup_link = "https://
|
464 |
-
$link_open = '<a target="_blank" href="'
|
465 |
$link_close = '</a>';
|
466 |
-
|
467 |
?>
|
468 |
-
<li
|
469 |
</ul>
|
470 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
471 |
<?php
|
472 |
}
|
473 |
|
@@ -488,8 +512,12 @@ class rsssl_admin extends rsssl_front_end
|
|
488 |
<input type="submit" class='button button-primary'
|
489 |
value="<?php _e("Go ahead, activate SSL!", "really-simple-ssl"); ?>" id="rsssl_do_activate_ssl"
|
490 |
name="rsssl_do_activate_ssl">
|
491 |
-
|
|
|
|
|
492 |
</form>
|
|
|
|
|
493 |
</div>
|
494 |
</p>
|
495 |
<?php
|
@@ -508,8 +536,8 @@ class rsssl_admin extends rsssl_front_end
|
|
508 |
if ($this->site_has_ssl) {
|
509 |
?>
|
510 |
<p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl'); ?>
|
511 |
-
|
512 |
-
href="<?php echo $this->pro_url; ?>"><?php _e("Check out Really Simple SSL
|
513 |
</p>
|
514 |
<?php
|
515 |
}
|
@@ -691,7 +719,6 @@ class rsssl_admin extends rsssl_front_end
|
|
691 |
public function configure_ssl()
|
692 |
{
|
693 |
if (!current_user_can($this->capability)) return;
|
694 |
-
|
695 |
$safe_mode = FALSE;
|
696 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) $safe_mode = RSSSL_SAFE_MODE;
|
697 |
|
@@ -699,7 +726,6 @@ class rsssl_admin extends rsssl_front_end
|
|
699 |
$this->trace_log("<br>" . "<b>" . "SSL Configuration" . "</b>");
|
700 |
if ($this->site_has_ssl) {
|
701 |
//when one of the used server variables was found, test if the redirect works
|
702 |
-
|
703 |
if (RSSSL()->rsssl_server->uses_htaccess() && $this->ssl_type != "NA") {
|
704 |
$this->test_htaccess_redirect();
|
705 |
}
|
@@ -728,6 +754,10 @@ class rsssl_admin extends rsssl_front_end
|
|
728 |
$this->set_siteurl_to_ssl();
|
729 |
}
|
730 |
|
|
|
|
|
|
|
|
|
731 |
}
|
732 |
}
|
733 |
|
@@ -1261,7 +1291,6 @@ class rsssl_admin extends rsssl_front_end
|
|
1261 |
$server_var = TRUE;
|
1262 |
}
|
1263 |
|
1264 |
-
|
1265 |
if (is_ssl() || $server_var) {
|
1266 |
return true;
|
1267 |
} else {
|
@@ -1297,7 +1326,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1297 |
//check the type of SSL, either by parsing the returned string, or by reading the server vars.
|
1298 |
if ((strpos($filecontents, "#CLOUDFRONT#") !== false) || (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO']) && ($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https'))) {
|
1299 |
$this->ssl_type = "CLOUDFRONT";
|
1300 |
-
} elseif ((strpos($filecontents, "#CLOUDFLARE#") !== false) || (isset($_SERVER['HTTP_CF_VISITOR']) && ($_SERVER[
|
1301 |
$this->ssl_type = "CLOUDFLARE";
|
1302 |
} elseif ((strpos($filecontents, "#LOADBALANCER#") !== false) || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))) {
|
1303 |
$this->ssl_type = "LOADBALANCER";
|
@@ -1855,7 +1884,7 @@ class rsssl_admin extends rsssl_front_end
|
|
1855 |
$this->mixed_content_fixer_detected = FALSE;
|
1856 |
}
|
1857 |
if ($mixed_content_fixer_detected === 'found'){
|
1858 |
-
$this->trace_log("Mixed content fixer
|
1859 |
//Mixed content fixer was successfully detected on the front end
|
1860 |
$this->mixed_content_fixer_detected = true;
|
1861 |
}
|
@@ -1991,18 +2020,17 @@ class rsssl_admin extends rsssl_front_end
|
|
1991 |
if ($this->do_wpconfig_loadbalancer_fix) { ?>
|
1992 |
<p><?php echo __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl"); ?></p>
|
1993 |
<p><?php echo __("Because your site is behind a loadbalancer and is_ssl() returns false, you should add the following line of code to your wp-config.php.", "really-simple-ssl"); ?>
|
1994 |
-
|
1995 |
<br><br><code>
|
1996 |
//Begin Really Simple SSL Load balancing fix<br>
|
1997 |
-
|
1998 |
-
"
|
1999 |
-
"HTTP_X_FORWARDED_SSL"
|
2000 |
-
|
2001 |
-
|
2002 |
-
&& (
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
}<br>
|
2007 |
//END Really Simple SSL
|
2008 |
</code><br>
|
@@ -2037,7 +2065,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2037 |
if (file_exists("$this->ABSpath.well-known/acme-challenge")) {
|
2038 |
return true;
|
2039 |
}
|
2040 |
-
|
2041 |
return false;
|
2042 |
}
|
2043 |
|
@@ -2053,7 +2080,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2053 |
public function has_well_known_needle()
|
2054 |
{
|
2055 |
$htaccess = file_get_contents($this->htaccess_file());
|
2056 |
-
|
2057 |
$well_known_needle = ".well-known";
|
2058 |
|
2059 |
if (strpos($htaccess, $well_known_needle) !== false) {
|
@@ -2061,7 +2087,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2061 |
}
|
2062 |
|
2063 |
return false;
|
2064 |
-
|
2065 |
}
|
2066 |
|
2067 |
public function show_leave_review_notice()
|
@@ -2070,18 +2095,56 @@ class rsssl_admin extends rsssl_front_end
|
|
2070 |
$screen = get_current_screen();
|
2071 |
if ( $screen->parent_base === 'edit' ) return;
|
2072 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2073 |
if (!$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
|
2074 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
|
2075 |
?>
|
2076 |
-
<
|
2077 |
-
|
2078 |
-
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2085 |
</div>
|
2086 |
<?php
|
2087 |
}
|
@@ -2127,7 +2190,7 @@ class rsssl_admin extends rsssl_front_end
|
|
2127 |
<?php _e("Major security issue!", "really-simple-ssl"); ?>
|
2128 |
</h1>
|
2129 |
<p>
|
2130 |
-
<?php _e("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be
|
2131 |
</p>
|
2132 |
<a href="<?php echo admin_url('options-general.php?page=rlrsssl_really_simple_ssl')?>"><?php echo __("Check again", "really-simple-ssl"); ?></a>
|
2133 |
</div>
|
@@ -2145,17 +2208,47 @@ class rsssl_admin extends rsssl_front_end
|
|
2145 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
2146 |
?>
|
2147 |
<div id="message" class="updated notice is-dismissible rlrsssl-success">
|
|
|
|
|
2148 |
<p>
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2157 |
</p>
|
|
|
|
|
2158 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2159 |
<?php
|
2160 |
}
|
2161 |
|
@@ -2440,50 +2533,34 @@ class rsssl_admin extends rsssl_front_end
|
|
2440 |
*
|
2441 |
*/
|
2442 |
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
|
2447 |
-
|
2448 |
|
2449 |
-
|
2450 |
-
$existing_counts = $this->get_existing_settings_plusones();
|
2451 |
|
2452 |
-
|
2453 |
-
|
2454 |
-
} else {
|
2455 |
-
$update_count = "";
|
2456 |
-
}
|
2457 |
-
$menu[80][0] = str_replace(__("Settings"), __("Settings") . $update_count, $menu[80][0]);
|
2458 |
-
}
|
2459 |
|
2460 |
-
|
2461 |
-
|
2462 |
-
|
2463 |
-
|
2464 |
-
|
2465 |
-
|
2466 |
-
|
2467 |
-
*/
|
2468 |
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
|
2473 |
-
|
|
|
|
|
2474 |
|
2475 |
-
//Get the existing count with regex
|
2476 |
-
if (strpos($menu[80][0], "plugin-count") != false) {
|
2477 |
-
$pattern = '/(?<=[\'|\"]plugin-count[\'|\"]>)(.*?)(?=\<)/i';
|
2478 |
-
$existing_count = preg_match($pattern, $menu[80][0]);
|
2479 |
-
$str = $menu[80][0];
|
2480 |
-
if (preg_match($pattern, $str, $matches)){
|
2481 |
-
$existing_count = $matches[1];
|
2482 |
-
}
|
2483 |
-
}
|
2484 |
|
2485 |
-
return intval($existing_count);
|
2486 |
-
}
|
2487 |
|
2488 |
/**
|
2489 |
* Admin help tab
|
@@ -2832,7 +2909,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2832 |
|
2833 |
public function count_plusones(){
|
2834 |
if (!current_user_can('manage_options')) return 0;
|
2835 |
-
|
2836 |
$count = get_transient('rsssl_plusone_count');
|
2837 |
if ($count===FALSE) {
|
2838 |
$count = 0;
|
@@ -2863,12 +2939,6 @@ class rsssl_admin extends rsssl_front_end
|
|
2863 |
if (!$success && isset($notice['output'][$output]['plusone']) && $notice['output'][$output]['plusone']) {
|
2864 |
$count++;
|
2865 |
}
|
2866 |
-
|
2867 |
-
//Check if there's an existing count after the Settings item
|
2868 |
-
$existing_count = $this->get_existing_settings_plusones();
|
2869 |
-
|
2870 |
-
$count = $count + $existing_count;
|
2871 |
-
|
2872 |
}
|
2873 |
set_transient('rsssl_plusone_count', $count, 'WEEK_IN_SECONDS');
|
2874 |
}
|
@@ -3068,34 +3138,49 @@ class rsssl_admin extends rsssl_front_end
|
|
3068 |
*
|
3069 |
*/
|
3070 |
|
3071 |
-
$
|
|
|
3072 |
$this->get_banner_html(array(
|
3073 |
'img' => 'rsssl-pro.jpg',
|
3074 |
'title' => 'Really Simple SSL Pro',
|
3075 |
-
'description' => __("Really Simple SSL
|
3076 |
'url' => $url,
|
3077 |
'pro' => true,
|
3078 |
)
|
3079 |
);
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
|
|
|
|
|
|
3088 |
|
3089 |
if (!defined("ZRDN_PLUGIN_DIRECTORY")) {
|
3090 |
$this->get_banner_html(array(
|
3091 |
'img' => 'ziprecipes.png',
|
3092 |
'title' => 'Zip Recipes',
|
3093 |
'description' => __("Create beautiful SEO friendly recipe cards for your recipes with Zip Recipes.", "really-simple-ssl"),
|
3094 |
-
'url' =>
|
3095 |
)
|
3096 |
);
|
3097 |
}
|
3098 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3099 |
if (defined("ultimatemember_version")) {
|
3100 |
|
3101 |
if (!defined("um_tagging_version")) {
|
@@ -3501,9 +3586,15 @@ class rsssl_admin extends rsssl_front_end
|
|
3501 |
RSSSL()->rsssl_help->get_help_tip(__("A .htaccess redirect is faster. Really Simple SSL detects the redirect code that is most likely to work (99% of websites), but this is not 100%. Make sure you know how to regain access to your site if anything goes wrong!", "really-simple-ssl"));
|
3502 |
echo $comment;
|
3503 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3504 |
if ($this->htaccess_redirect && (!is_writable($this->htaccess_file()) || !$this->htaccess_test_success)) {
|
3505 |
echo "<br><br>";
|
3506 |
-
if (!is_writable($this->htaccess_file())) _e("The
|
3507 |
if (!$this->htaccess_test_success) _e("The .htaccess redirect rules that were selected by this plugin failed in the test. The following redirect rules were tested:", "really-simple-ssl");
|
3508 |
echo "<br><br>";
|
3509 |
if ($this->ssl_type != "NA") {
|
@@ -3942,7 +4033,6 @@ class rsssl_admin extends rsssl_front_end
|
|
3942 |
exit;
|
3943 |
}
|
3944 |
}
|
3945 |
-
|
3946 |
} //class closure
|
3947 |
|
3948 |
/**
|
@@ -3977,7 +4067,7 @@ function rsssl_ssl_detected(){
|
|
3977 |
if (!RSSSL()->really_simple_ssl->site_has_ssl) {
|
3978 |
return 'no-ssl-detected';
|
3979 |
}
|
3980 |
-
if (RSSSL()->
|
3981 |
return 'ssl-detected';
|
3982 |
}
|
3983 |
|
131 |
- No SSL detected
|
132 |
*/
|
133 |
|
134 |
+
|
135 |
//when configuration should run again
|
136 |
if ($this->clicked_activate_ssl() || !$this->ssl_enabled || !$this->site_has_ssl || $is_on_settings_page || is_network_admin()) {
|
137 |
|
240 |
//remove plugin one by one on each site
|
241 |
$sites = get_sites();
|
242 |
foreach ($sites as $site) {
|
243 |
+
RSSSL()->rsssl_multisite->switch_to_blog_bw_compatible($site);
|
244 |
|
245 |
$current = get_option('active_plugins', array());
|
246 |
$current = $this->remove_plugin_from_array($plugin, $current);
|
248 |
|
249 |
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
|
250 |
}
|
|
|
251 |
} else {
|
|
|
252 |
$current = get_option('active_plugins', array());
|
253 |
$current = $this->remove_plugin_from_array($plugin, $current);
|
254 |
update_option('active_plugins', $current);
|
353 |
|
354 |
$this->set_siteurl_to_ssl();
|
355 |
$this->save_options();
|
356 |
+
|
357 |
+
|
358 |
}
|
359 |
|
360 |
|
368 |
$this->save_options();
|
369 |
}
|
370 |
|
371 |
+
public function redirect_to_settings_page_after_activation() {
|
372 |
+
if (isset($_GET['page']) && $_GET['page'] == 'rlrsssl_really_simple_ssl') return;
|
373 |
+
$url = add_query_arg( array(
|
374 |
+
"page" => "rlrsssl_really_simple_ssl",
|
375 |
+
), admin_url( "options-general.php" ) );
|
376 |
+
wp_redirect( $url );
|
377 |
+
exit;
|
378 |
+
}
|
379 |
+
|
380 |
|
381 |
public function wpconfig_ok()
|
382 |
{
|
383 |
+
|
384 |
if (($this->do_wpconfig_loadbalancer_fix || $this->no_server_variable || $this->wpconfig_siteurl_not_fixed) && !$this->wpconfig_is_writable()) {
|
385 |
$result = false;
|
386 |
} else {
|
423 |
|
424 |
public function ssl_detected()
|
425 |
{
|
426 |
+
if ($this->site_has_ssl) {
|
427 |
+
?>
|
428 |
+
<div id="message" class="notice activate-ssl <?php echo apply_filters('rsssl_activate_notice_class', '');?>">
|
429 |
<?php
|
430 |
do_action('rsssl_activation_notice_inner');
|
431 |
?>
|
468 |
|
469 |
<?php _e("Some things can't be done automatically. Before you migrate, please check for: ", 'really-simple-ssl'); ?>
|
470 |
<p>
|
471 |
+
<ul class="message-ul">
|
472 |
+
<li class="message-li"><?php _e('Http references in your .css and .js files: change any http:// into //', 'really-simple-ssl'); ?></li>
|
473 |
+
<li class="message-li"><?php _e('Images, stylesheets or scripts from a domain without an SSL certificate: remove them or move to your own server', 'really-simple-ssl'); ?></li><?php
|
474 |
|
475 |
+
$backup_link = "https://freally-simple-ssl.com/knowledge-base/backing-up-your-site/";
|
476 |
+
$link_open = '<a target="_blank" href="'.$backup_link.'">';
|
477 |
$link_close = '</a>';
|
|
|
478 |
?>
|
479 |
+
<li class="message-li"><?php printf(__("We strongly recommend to take a %sbackup%s of your site before activating SSL", 'really-simple-ssl'), $link_open, $link_close); ?> </li>
|
480 |
</ul>
|
481 |
</p>
|
482 |
+
<style>
|
483 |
+
.message-ul {
|
484 |
+
list-style-type: none;
|
485 |
+
}
|
486 |
+
|
487 |
+
#message .message-li::before {
|
488 |
+
vertical-align: middle;
|
489 |
+
margin-right: 25px;
|
490 |
+
color: lightgrey;
|
491 |
+
content: "\f345";
|
492 |
+
font: 400 21px/1 dashicons;
|
493 |
+
}
|
494 |
+
</style>
|
495 |
<?php
|
496 |
}
|
497 |
|
512 |
<input type="submit" class='button button-primary'
|
513 |
value="<?php _e("Go ahead, activate SSL!", "really-simple-ssl"); ?>" id="rsssl_do_activate_ssl"
|
514 |
name="rsssl_do_activate_ssl">
|
515 |
+
<?php if (!defined("rsssl_pro_version") ) { ?>
|
516 |
+
<a class="button action btn-premium" href="https://really-simple-ssl.com/pro" target="_blank"><?php _e("Get ready with Pro", "really-simple-ssl"); ?></a>
|
517 |
+
<?php } ?>
|
518 |
</form>
|
519 |
+
<b><?php _e("You may need to login in again.", "really-simple-ssl") ?></b>
|
520 |
+
<div id="rsssl-logo" style="float: right; margin-top: -35px;"><img width=180px" src="<?php echo rsssl_url?>/assets/logo-really-simple-ssl.png" alt="review-logo"></div>
|
521 |
</div>
|
522 |
</p>
|
523 |
<?php
|
536 |
if ($this->site_has_ssl) {
|
537 |
?>
|
538 |
<p><?php _e('You can also let the automatic scan of the pro version handle this for you, and get premium support, increased security with HSTS and more!', 'really-simple-ssl'); ?>
|
539 |
+
<a target="_blank"
|
540 |
+
href="<?php echo $this->pro_url; ?>"><?php _e("Check out Really Simple SSL Pro", "really-simple-ssl"); ?></a>
|
541 |
</p>
|
542 |
<?php
|
543 |
}
|
719 |
public function configure_ssl()
|
720 |
{
|
721 |
if (!current_user_can($this->capability)) return;
|
|
|
722 |
$safe_mode = FALSE;
|
723 |
if (defined('RSSSL_SAFE_MODE') && RSSSL_SAFE_MODE) $safe_mode = RSSSL_SAFE_MODE;
|
724 |
|
726 |
$this->trace_log("<br>" . "<b>" . "SSL Configuration" . "</b>");
|
727 |
if ($this->site_has_ssl) {
|
728 |
//when one of the used server variables was found, test if the redirect works
|
|
|
729 |
if (RSSSL()->rsssl_server->uses_htaccess() && $this->ssl_type != "NA") {
|
730 |
$this->test_htaccess_redirect();
|
731 |
}
|
754 |
$this->set_siteurl_to_ssl();
|
755 |
}
|
756 |
|
757 |
+
if (!is_multisite()) {
|
758 |
+
$this->redirect_to_settings_page_after_activation();
|
759 |
+
}
|
760 |
+
|
761 |
}
|
762 |
}
|
763 |
|
1291 |
$server_var = TRUE;
|
1292 |
}
|
1293 |
|
|
|
1294 |
if (is_ssl() || $server_var) {
|
1295 |
return true;
|
1296 |
} else {
|
1326 |
//check the type of SSL, either by parsing the returned string, or by reading the server vars.
|
1327 |
if ((strpos($filecontents, "#CLOUDFRONT#") !== false) || (isset($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO']) && ($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO'] == 'https'))) {
|
1328 |
$this->ssl_type = "CLOUDFRONT";
|
1329 |
+
} elseif ((strpos($filecontents, "#CLOUDFLARE#") !== false) || (isset($_SERVER['HTTP_CF_VISITOR']) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))) {
|
1330 |
$this->ssl_type = "CLOUDFLARE";
|
1331 |
} elseif ((strpos($filecontents, "#LOADBALANCER#") !== false) || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))) {
|
1332 |
$this->ssl_type = "LOADBALANCER";
|
1884 |
$this->mixed_content_fixer_detected = FALSE;
|
1885 |
}
|
1886 |
if ($mixed_content_fixer_detected === 'found'){
|
1887 |
+
$this->trace_log("Mixed content fixer successfully detected");
|
1888 |
//Mixed content fixer was successfully detected on the front end
|
1889 |
$this->mixed_content_fixer_detected = true;
|
1890 |
}
|
2020 |
if ($this->do_wpconfig_loadbalancer_fix) { ?>
|
2021 |
<p><?php echo __("Your wp-config.php has to be edited, but is not writable.", "really-simple-ssl"); ?></p>
|
2022 |
<p><?php echo __("Because your site is behind a loadbalancer and is_ssl() returns false, you should add the following line of code to your wp-config.php.", "really-simple-ssl"); ?>
|
|
|
2023 |
<br><br><code>
|
2024 |
//Begin Really Simple SSL Load balancing fix<br>
|
2025 |
+
if ((isset($_ENV["HTTPS"]) && ("on" == $_ENV["HTTPS"]))<br>
|
2026 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "1") !== false))<br>
|
2027 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_SSL"]) && (strpos($_SERVER["HTTP_X_FORWARDED_SSL"], "on") !== false))<br>
|
2028 |
+
|| (isset($_SERVER["HTTP_CF_VISITOR"]) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false))<br>
|
2029 |
+
|| (isset($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_CLOUDFRONT_FORWARDED_PROTO"], "https") !== false))<br>
|
2030 |
+
|| (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && (strpos($_SERVER["HTTP_X_FORWARDED_PROTO"], "https") !== false))<br>
|
2031 |
+
|| (isset($_SERVER["HTTP_X_PROTO"]) && (strpos($_SERVER["HTTP_X_PROTO"], "SSL") !== false))<br>
|
2032 |
+
) {<br>
|
2033 |
+
$_SERVER["HTTPS"] = "on";<br>
|
2034 |
}<br>
|
2035 |
//END Really Simple SSL
|
2036 |
</code><br>
|
2065 |
if (file_exists("$this->ABSpath.well-known/acme-challenge")) {
|
2066 |
return true;
|
2067 |
}
|
|
|
2068 |
return false;
|
2069 |
}
|
2070 |
|
2080 |
public function has_well_known_needle()
|
2081 |
{
|
2082 |
$htaccess = file_get_contents($this->htaccess_file());
|
|
|
2083 |
$well_known_needle = ".well-known";
|
2084 |
|
2085 |
if (strpos($htaccess, $well_known_needle) !== false) {
|
2087 |
}
|
2088 |
|
2089 |
return false;
|
|
|
2090 |
}
|
2091 |
|
2092 |
public function show_leave_review_notice()
|
2095 |
$screen = get_current_screen();
|
2096 |
if ( $screen->parent_base === 'edit' ) return;
|
2097 |
|
2098 |
+
//this user has never had the review notice yet.
|
2099 |
+
if ($this->ssl_enabled && !get_option('rsssl_activation_timestamp')){
|
2100 |
+
$month = rand ( 0, 11);
|
2101 |
+
$trigger_notice_date = time() + $month * MONTH_IN_SECONDS;
|
2102 |
+
update_option('rsssl_activation_timestamp', $trigger_notice_date);
|
2103 |
+
update_option('rsssl_before_review_notice_user', true);
|
2104 |
+
}
|
2105 |
+
|
2106 |
if (!$this->review_notice_shown && get_option('rsssl_activation_timestamp') && get_option('rsssl_activation_timestamp') < strtotime("-1 month")) {
|
2107 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_review'));
|
2108 |
?>
|
2109 |
+
<style>
|
2110 |
+
.rsssl-container {
|
2111 |
+
display: flex;
|
2112 |
+
padding:12px;
|
2113 |
+
}
|
2114 |
+
.rsssl-container .dashicons {
|
2115 |
+
margin-left:10px;
|
2116 |
+
margin-right:5px;
|
2117 |
+
}
|
2118 |
+
.rsssl-review-image img{
|
2119 |
+
margin-top:0.5em;
|
2120 |
+
}
|
2121 |
+
.rsssl-buttons-row {
|
2122 |
+
margin-top:10px;
|
2123 |
+
display: flex;
|
2124 |
+
align-items: center;
|
2125 |
+
}
|
2126 |
+
</style>
|
2127 |
+
<div id="message" class="updated fade notice is-dismissible rlrsssl-review really-simple-plugins" style="border-left:4px solid #333">
|
2128 |
+
<div class="rsssl-container">
|
2129 |
+
<div class="rsssl-review-image"><img width=80px" src="<?php echo rsssl_url?>/assets/icon-128x128.png" alt="review-logo"></div>
|
2130 |
+
<div style="margin-left:30px">
|
2131 |
+
<?php if (get_option("rsssl_before_review_notice_user")){?>
|
2132 |
+
<p><?php printf(__('Hi, Really Simple SSL has kept your site secure for some time now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
|
2133 |
+
<?php } else {?>
|
2134 |
+
<p><?php printf(__('Hi, Really Simple SSL has kept your site secure for a month now, awesome! If you have a moment, please consider leaving a review on WordPress.org to spread the word. We greatly appreciate it! If you have any questions or feedback, leave us a %smessage%s.', 'really-simple-ssl'),'<a href="https://really-simple-ssl.com/contact" target="_blank">','</a>'); ?></p>
|
2135 |
+
<?php }?>
|
2136 |
+
|
2137 |
+
<i>- Rogier</i>
|
2138 |
+
<div class="rsssl-buttons-row">
|
2139 |
+
<a class="button button-primary" target="_blank"
|
2140 |
+
href="https://wordpress.org/support/plugin/really-simple-ssl/reviews/#new-post"><?php _e('Leave a review', 'really-simple-ssl'); ?></a>
|
2141 |
+
|
2142 |
+
<div class="dashicons dashicons-calendar"></div><a href="#" id="maybe-later"><?php _e('Maybe later', 'really-simple-ssl'); ?></a>
|
2143 |
+
|
2144 |
+
<div class="dashicons dashicons-no-alt"></div><a href="#" class="review-dismiss"><?php _e('Don\'t show again', 'really-simple-ssl'); ?></a>
|
2145 |
+
</div>
|
2146 |
+
</div>
|
2147 |
+
</div>
|
2148 |
</div>
|
2149 |
<?php
|
2150 |
}
|
2190 |
<?php _e("Major security issue!", "really-simple-ssl"); ?>
|
2191 |
</h1>
|
2192 |
<p>
|
2193 |
+
<?php _e("The 'force-deactivate.php' file has to be renamed to .txt. Otherwise your ssl can be deactivated by anyone on the internet.", "really-simple-ssl"); ?>
|
2194 |
</p>
|
2195 |
<a href="<?php echo admin_url('options-general.php?page=rlrsssl_really_simple_ssl')?>"><?php echo __("Check again", "really-simple-ssl"); ?></a>
|
2196 |
</div>
|
2208 |
add_action('admin_print_footer_scripts', array($this, 'insert_dismiss_success'));
|
2209 |
?>
|
2210 |
<div id="message" class="updated notice is-dismissible rlrsssl-success">
|
2211 |
+
|
2212 |
+
<h1><?php _e("SSL activated!", "really-simple-ssl"); ?></h1>
|
2213 |
<p>
|
2214 |
+
<?php _e("Take the time to review these things", "really-simple-ssl");?>
|
2215 |
+
<ul class="message-ul">
|
2216 |
+
<li class="message-li"><?php _e("Don't forget to change your settings in Google Analytics and Webmaster tools.", "really-simple-ssl");
|
2217 |
+
?>
|
2218 |
+
<a target="_blank"
|
2219 |
+
href="https://really-simple-ssl.com/knowledge-base/how-to-setup-google-analytics-and-google-search-consolewebmaster-tools/">
|
2220 |
+
<?php _e("More info", "really-simple-ssl"); ?></a>
|
2221 |
+
</li>
|
2222 |
+
|
2223 |
+
<?php if (uses_elementor()) {
|
2224 |
+
?>
|
2225 |
+
<li class="message-li"><?php _e("We have detected Elementor.", "really-simple-ssl");?>
|
2226 |
+
<a target="_blank"
|
2227 |
+
href="https://really-simple-ssl.com/knowledge-base/how-to-fix-mixed-content-in-elementor-after-moving-to-ssl/"><?php _e("See our article for instructions", "really-simple-ssl"); ?></a>
|
2228 |
+
</li>
|
2229 |
+
<?php }
|
2230 |
+
?>
|
2231 |
+
<li class="message-li"><?php _e("Improve your security", "really-simple-ssl");?>
|
2232 |
+
<a target="_blank" href="https://really-simple-ssl.com/new-security-headers-for-really-simple-ssl-pro-coming-up/"><?php _e("with security headers", "really-simple-ssl"); ?></a>
|
2233 |
+
</li>
|
2234 |
+
</ul>
|
2235 |
</p>
|
2236 |
+
<a class="button action btn-premium btn-premium-activated" style="margin-bottom: 10px;" href="https://really-simple-ssl.com/pro" target="_blank"><?php _e("Really Simple SSL Pro", "really-simple-ssl"); ?></a>
|
2237 |
+
<div id="rsssl-logo" style="float: right; margin-top: -20px;"><img width=180px" src="<?php echo rsssl_url?>/assets/logo-really-simple-ssl.png" alt="review-logo"></div>
|
2238 |
</div>
|
2239 |
+
<style>
|
2240 |
+
.message-ul {
|
2241 |
+
list-style-type: none;
|
2242 |
+
}
|
2243 |
+
|
2244 |
+
#message .message-li::before {
|
2245 |
+
vertical-align: middle;
|
2246 |
+
margin-right: 25px;
|
2247 |
+
color: lightgrey;
|
2248 |
+
content: "\f345";
|
2249 |
+
font: 400 21px/1 dashicons;
|
2250 |
+
}
|
2251 |
+
</style>
|
2252 |
<?php
|
2253 |
}
|
2254 |
|
2533 |
*
|
2534 |
*/
|
2535 |
|
2536 |
+
public function rsssl_edit_admin_menu()
|
2537 |
+
{
|
2538 |
+
if (!current_user_can($this->capability)) return;
|
2539 |
|
2540 |
+
global $menu;
|
2541 |
|
2542 |
+
$count = $this->count_plusones();
|
|
|
2543 |
|
2544 |
+
$menu_slug = 'options-general.php';
|
2545 |
+
$menu_title = __('Settings');
|
|
|
|
|
|
|
|
|
|
|
2546 |
|
2547 |
+
foreach($menu as $index => $menu_item){
|
2548 |
+
if (!isset($menu_item[2]) || !isset($menu_item[0])) continue;
|
2549 |
+
if ($menu_item[2]===$menu_slug){
|
2550 |
+
$pattern = '/<span.*>([1-9])<\/span><\/span>/i';
|
2551 |
+
if (preg_match($pattern, $menu_item[0], $matches)){
|
2552 |
+
if (isset($matches[1])) $count = intval($count) + intval($matches[1]);
|
2553 |
+
}
|
|
|
2554 |
|
2555 |
+
$update_count = $count > 0 ? "<span class='update-plugins rsssl-update-count'><span class='update-count'>$count</span></span>":'';
|
2556 |
+
$menu[$index][0] = $menu_title . $update_count;
|
2557 |
+
}
|
2558 |
|
2559 |
+
}
|
2560 |
+
|
2561 |
+
}
|
2562 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2563 |
|
|
|
|
|
2564 |
|
2565 |
/**
|
2566 |
* Admin help tab
|
2909 |
|
2910 |
public function count_plusones(){
|
2911 |
if (!current_user_can('manage_options')) return 0;
|
|
|
2912 |
$count = get_transient('rsssl_plusone_count');
|
2913 |
if ($count===FALSE) {
|
2914 |
$count = 0;
|
2939 |
if (!$success && isset($notice['output'][$output]['plusone']) && $notice['output'][$output]['plusone']) {
|
2940 |
$count++;
|
2941 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2942 |
}
|
2943 |
set_transient('rsssl_plusone_count', $count, 'WEEK_IN_SECONDS');
|
2944 |
}
|
3138 |
*
|
3139 |
*/
|
3140 |
|
3141 |
+
$admin_url = admin_url();
|
3142 |
+
$url = is_multisite() ? 'https://really-simple-ssl.com/downloads/really-simple-ssl-pro-multisite/' : 'https://really-simple-ssl.com/pro/';
|
3143 |
$this->get_banner_html(array(
|
3144 |
'img' => 'rsssl-pro.jpg',
|
3145 |
'title' => 'Really Simple SSL Pro',
|
3146 |
+
'description' => __("Really Simple SSL Pro optimizes your SSL configuration: extensive scan for mixed content issues, access to premium support, HSTS and more!", "really-simple-ssl"),
|
3147 |
'url' => $url,
|
3148 |
'pro' => true,
|
3149 |
)
|
3150 |
);
|
3151 |
+
|
3152 |
+
if (!class_exists('COMPLIANZ')) {
|
3153 |
+
$this->get_banner_html( array(
|
3154 |
+
'img' => 'complianz.jpg',
|
3155 |
+
'title' => 'Complianz',
|
3156 |
+
'description' => __( "The Complianz Privacy Suite (GDPR/CaCPA) for WordPress. Simple, Quick and Complete. Up-to-date customized legal documents by a prominent IT Law firm.", "really-simple-ssl" ),
|
3157 |
+
'url' => "$admin_url" . "plugin-install.php?s=complianz+RogierLankhorst&tab=search&type=term",
|
3158 |
+
'pro' => true,
|
3159 |
+
)
|
3160 |
+
);
|
3161 |
+
}
|
3162 |
|
3163 |
if (!defined("ZRDN_PLUGIN_DIRECTORY")) {
|
3164 |
$this->get_banner_html(array(
|
3165 |
'img' => 'ziprecipes.png',
|
3166 |
'title' => 'Zip Recipes',
|
3167 |
'description' => __("Create beautiful SEO friendly recipe cards for your recipes with Zip Recipes.", "really-simple-ssl"),
|
3168 |
+
'url' => "$admin_url" . "plugin-install.php?s=zip+recipes+RogierLankhorst&tab=search&type=term",
|
3169 |
)
|
3170 |
);
|
3171 |
}
|
3172 |
|
3173 |
+
|
3174 |
+
if (!defined("wp_search_insights_plugin")) {
|
3175 |
+
$this->get_banner_html(array(
|
3176 |
+
'img' => 'wpsearchinsights.jpg',
|
3177 |
+
'title' => 'WP Search Insights',
|
3178 |
+
'description' => __("Records all searches made on your site. See valuable insights in a clean dashboard", "really-simple-ssl"),
|
3179 |
+
'url' => "$admin_url" . "plugin-install.php?s=wp+search+insights+Rogier+Lankhorst&tab=search&type=term",
|
3180 |
+
)
|
3181 |
+
);
|
3182 |
+
}
|
3183 |
+
|
3184 |
if (defined("ultimatemember_version")) {
|
3185 |
|
3186 |
if (!defined("um_tagging_version")) {
|
3586 |
RSSSL()->rsssl_help->get_help_tip(__("A .htaccess redirect is faster. Really Simple SSL detects the redirect code that is most likely to work (99% of websites), but this is not 100%. Make sure you know how to regain access to your site if anything goes wrong!", "really-simple-ssl"));
|
3587 |
echo $comment;
|
3588 |
|
3589 |
+
if ($this->uses_htaccess_conf()) {
|
3590 |
+
$htaccess_file = "htaccess.conf (/conf/htaccess.conf/)";
|
3591 |
+
} else {
|
3592 |
+
$htaccess_file = ".htaccess";
|
3593 |
+
}
|
3594 |
+
|
3595 |
if ($this->htaccess_redirect && (!is_writable($this->htaccess_file()) || !$this->htaccess_test_success)) {
|
3596 |
echo "<br><br>";
|
3597 |
+
if (!is_writable($this->htaccess_file())) _e("The $htaccess_file file is not writable. Add these lines to your htaccess manually, or set 644 writing permissions.", "really-simple-ssl");
|
3598 |
if (!$this->htaccess_test_success) _e("The .htaccess redirect rules that were selected by this plugin failed in the test. The following redirect rules were tested:", "really-simple-ssl");
|
3599 |
echo "<br><br>";
|
3600 |
if ($this->ssl_type != "NA") {
|
4033 |
exit;
|
4034 |
}
|
4035 |
}
|
|
|
4036 |
} //class closure
|
4037 |
|
4038 |
/**
|
4067 |
if (!RSSSL()->really_simple_ssl->site_has_ssl) {
|
4068 |
return 'no-ssl-detected';
|
4069 |
}
|
4070 |
+
if (RSSSL()->rsssl_certificate->is_valid()) {
|
4071 |
return 'ssl-detected';
|
4072 |
}
|
4073 |
|
class-multisite.php
CHANGED
@@ -477,6 +477,14 @@ if (!class_exists('rsssl_multisite')) {
|
|
477 |
|
478 |
}
|
479 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
public function get_process_completed_percentage(){
|
481 |
$complete_count = get_site_option('rsssl_siteprocessing_progress');
|
482 |
|
@@ -530,7 +538,8 @@ if (!class_exists('rsssl_multisite')) {
|
|
530 |
|
531 |
public function activate_ssl_networkwide()
|
532 |
{
|
533 |
-
|
|
|
534 |
$nr_of_sites = 200;
|
535 |
$current_offset = get_site_option('rsssl_siteprocessing_progress');
|
536 |
|
@@ -548,8 +557,7 @@ if (!class_exists('rsssl_multisite')) {
|
|
548 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
549 |
}
|
550 |
}
|
551 |
-
|
552 |
-
|
553 |
}
|
554 |
|
555 |
|
@@ -562,8 +570,6 @@ if (!class_exists('rsssl_multisite')) {
|
|
562 |
* */
|
563 |
public function get_sites_bw_compatible($offset=0, $nr_of_sites=100)
|
564 |
{
|
565 |
-
|
566 |
-
|
567 |
global $wp_version;
|
568 |
|
569 |
$args = array(
|
@@ -709,6 +715,7 @@ if (!class_exists('rsssl_multisite')) {
|
|
709 |
*
|
710 |
* @access private
|
711 |
*
|
|
|
712 |
*/
|
713 |
|
714 |
public function is_subfolder($domain)
|
477 |
|
478 |
}
|
479 |
|
480 |
+
public function redirect_to_network_settings_page_after_activation() {
|
481 |
+
$url = add_query_arg( array(
|
482 |
+
"page" => "really-simple-ssl",
|
483 |
+
), network_admin_url( "settings.php" ) );
|
484 |
+
wp_safe_redirect( $url );
|
485 |
+
exit;
|
486 |
+
}
|
487 |
+
|
488 |
public function get_process_completed_percentage(){
|
489 |
$complete_count = get_site_option('rsssl_siteprocessing_progress');
|
490 |
|
538 |
|
539 |
public function activate_ssl_networkwide()
|
540 |
{
|
541 |
+
|
542 |
+
//run chunked
|
543 |
$nr_of_sites = 200;
|
544 |
$current_offset = get_site_option('rsssl_siteprocessing_progress');
|
545 |
|
557 |
update_site_option('rsssl_siteprocessing_progress', $current_offset+$nr_of_sites);
|
558 |
}
|
559 |
}
|
560 |
+
$this->redirect_to_network_settings_page_after_activation();
|
|
|
561 |
}
|
562 |
|
563 |
|
570 |
* */
|
571 |
public function get_sites_bw_compatible($offset=0, $nr_of_sites=100)
|
572 |
{
|
|
|
|
|
573 |
global $wp_version;
|
574 |
|
575 |
$args = array(
|
715 |
*
|
716 |
* @access private
|
717 |
*
|
718 |
+
* @return bool
|
719 |
*/
|
720 |
|
721 |
public function is_subfolder($domain)
|
class-server.php
CHANGED
@@ -26,6 +26,7 @@ if ( ! class_exists( 'rsssl_server' ) ) {
|
|
26 |
|
27 |
*/
|
28 |
|
|
|
29 |
public function uses_htaccess(){
|
30 |
|
31 |
if ($this->get_server()=="apache" || $this->get_server()=="litespeed") {
|
26 |
|
27 |
*/
|
28 |
|
29 |
+
|
30 |
public function uses_htaccess(){
|
31 |
|
32 |
if ($this->get_server()=="apache" || $this->get_server()=="litespeed") {
|
css/main.css
CHANGED
@@ -14,12 +14,28 @@
|
|
14 |
max-width:100%;
|
15 |
/*height:inherit;*/
|
16 |
}
|
|
|
17 |
#message.updated.notice.activate-ssl {
|
18 |
padding-top: 10px;
|
19 |
}
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
.activate-ssl .button {
|
@@ -296,7 +312,7 @@
|
|
296 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
297 |
|
298 |
.rsssl-really-simple-plugins-logo {
|
299 |
-
background-color: #
|
300 |
margin-left: -15px;
|
301 |
margin-right: -15px;
|
302 |
}
|
@@ -315,16 +331,16 @@
|
|
315 |
min-height: 125px;
|
316 |
padding-bottom: 35px;
|
317 |
margin-bottom: 10px;
|
318 |
-
background-color: #
|
319 |
width: 100%;
|
320 |
border-radius: 3%;
|
321 |
}
|
322 |
|
323 |
.rsssl-sidebar-single-content-container-pro {
|
|
|
324 |
min-height: 125px;
|
325 |
padding-bottom: 35px;
|
326 |
margin-bottom: 10px;
|
327 |
-
background-color: #DCDCDC;
|
328 |
width: 100%;
|
329 |
border-radius: 3%;
|
330 |
}
|
@@ -390,6 +406,7 @@
|
|
390 |
width: 40%;
|
391 |
}
|
392 |
.rsssl-sidebar-single-content-container {
|
|
|
393 |
width: 40%;
|
394 |
padding-left: 25px;
|
395 |
float: left;
|
@@ -456,7 +473,8 @@
|
|
456 |
-webkit-border-radius: 12px;
|
457 |
-moz-border-radius: 12px;
|
458 |
border-radius: 12px;
|
459 |
-
|
|
|
460 |
color: white;
|
461 |
margin-right: 5px;
|
462 |
}
|
@@ -486,16 +504,18 @@ hr {
|
|
486 |
float: right;
|
487 |
font-size: inherit;
|
488 |
height: 25px;
|
489 |
-
-webkit-border-radius: 12px;
|
490 |
-
-moz-border-radius: 12px;
|
491 |
border-radius: 12px;
|
492 |
-
|
|
|
493 |
color: white;
|
494 |
margin-right: 5px;
|
495 |
}
|
496 |
|
497 |
.rsssl-more-info-button {
|
|
|
|
|
498 |
clear: both;
|
|
|
499 |
}
|
500 |
|
501 |
#TB_ajaxContent {
|
@@ -510,10 +530,14 @@ hr {
|
|
510 |
margin-right: 15px;
|
511 |
}
|
512 |
|
|
|
|
|
|
|
|
|
513 |
.rsssl-scan-button{
|
514 |
float: left;
|
515 |
-
margin-top:
|
516 |
-
margin-right:
|
517 |
}
|
518 |
|
519 |
/*
|
14 |
max-width:100%;
|
15 |
/*height:inherit;*/
|
16 |
}
|
17 |
+
|
18 |
#message.updated.notice.activate-ssl {
|
19 |
padding-top: 10px;
|
20 |
}
|
21 |
+
|
22 |
+
/*Show RSSSL brand color as border-left*/
|
23 |
+
.activate-ssl {
|
24 |
+
border-left: 4px solid #F8BE2E;
|
25 |
+
}
|
26 |
+
|
27 |
+
/*If scan has been completed successfully, make border-left green*/
|
28 |
+
.rsssl-scan-completed {
|
29 |
+
border-left: 4px solid #46b450;
|
30 |
+
}
|
31 |
+
|
32 |
+
.btn-premium {
|
33 |
+
margin-left: 10px !important;
|
34 |
+
}
|
35 |
+
|
36 |
+
.btn-premium-activated {
|
37 |
+
padding-top: 10px;
|
38 |
+
padding-bottom: 10px;
|
39 |
}
|
40 |
|
41 |
.activate-ssl .button {
|
312 |
/* Styling for the sidebar in the admin tab of the free plugin */
|
313 |
|
314 |
.rsssl-really-simple-plugins-logo {
|
315 |
+
background-color: #ececec;
|
316 |
margin-left: -15px;
|
317 |
margin-right: -15px;
|
318 |
}
|
331 |
min-height: 125px;
|
332 |
padding-bottom: 35px;
|
333 |
margin-bottom: 10px;
|
334 |
+
background-color: #fff;
|
335 |
width: 100%;
|
336 |
border-radius: 3%;
|
337 |
}
|
338 |
|
339 |
.rsssl-sidebar-single-content-container-pro {
|
340 |
+
background-color: #fff;
|
341 |
min-height: 125px;
|
342 |
padding-bottom: 35px;
|
343 |
margin-bottom: 10px;
|
|
|
344 |
width: 100%;
|
345 |
border-radius: 3%;
|
346 |
}
|
406 |
width: 40%;
|
407 |
}
|
408 |
.rsssl-sidebar-single-content-container {
|
409 |
+
background-color: #fff;
|
410 |
width: 40%;
|
411 |
padding-left: 25px;
|
412 |
float: left;
|
473 |
-webkit-border-radius: 12px;
|
474 |
-moz-border-radius: 12px;
|
475 |
border-radius: 12px;
|
476 |
+
border: none;
|
477 |
+
background-color: #000000;
|
478 |
color: white;
|
479 |
margin-right: 5px;
|
480 |
}
|
504 |
float: right;
|
505 |
font-size: inherit;
|
506 |
height: 25px;
|
|
|
|
|
507 |
border-radius: 12px;
|
508 |
+
border: none;
|
509 |
+
background-color: #000000;
|
510 |
color: white;
|
511 |
margin-right: 5px;
|
512 |
}
|
513 |
|
514 |
.rsssl-more-info-button {
|
515 |
+
border: none;
|
516 |
+
border-radius: 50px;
|
517 |
clear: both;
|
518 |
+
margin-top: 10px;
|
519 |
}
|
520 |
|
521 |
#TB_ajaxContent {
|
530 |
margin-right: 15px;
|
531 |
}
|
532 |
|
533 |
+
.rsssl-scan-completed .rsssl-scan-button {
|
534 |
+
margin-top: 17px;
|
535 |
+
}
|
536 |
+
|
537 |
.rsssl-scan-button{
|
538 |
float: left;
|
539 |
+
margin-top: 10px;
|
540 |
+
margin-right: 15px;
|
541 |
}
|
542 |
|
543 |
/*
|
css/main.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.rsssl-notice{background-color:#fff;border-left:4px solid green;padding:1px 15px}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}#message.updated.notice.activate-ssl{padding-top:10px}.activate-ssl
|
1 |
+
.rsssl-notice{background-color:#fff;border-left:4px solid green;padding:1px 15px}.rsssl-main{flex:1;width:80%;float:left}.rsssl-sidebar img{max-width:100%}#message.updated.notice.activate-ssl{padding-top:10px}.activate-ssl{border-left:4px solid #f8be2e}.rsssl-scan-completed{border-left:4px solid #46b450}.btn-premium{margin-left:10px !important}.btn-premium-activated{padding-top:10px;padding-bottom:10px}.activate-ssl .button{margin-bottom:20px}.really-simple-ssl-table{display:flex;flex-direction:column;max-width:1140px}.rsssl-table-td-main-content{width:100%}.really-simple-ssl-table tr:first-child{border-top-left-radius:.55rem;border-top-right-radius:.55rem}.really-simple-ssl-table tr:last-child{margin-bottom:0;border-bottom-left-radius:.55rem;border-bottom-right-radius:.55rem}.really-simple-ssl-table tr{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.debug-log{background-color:#fff;padding:15px;border:1px solid black}.rsssl-icons{width:15px;height:15px}.rsssl-update-count{margin-left:4px !important;display:inline-block;vertical-align:top;box-sizing:border-box;margin:1px 0 -1px 2px;padding:0 5px;min-width:18px;height:18px;border-radius:9px;background-color:#ca4a1f;color:#fff;font-size:11px;line-height:1.6;text-align:center;z-index:26}[data-rsssl-tooltip],.rsssl-tooltip{position:relative;cursor:pointer}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after{position:absolute;visibility:hidden;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-webkit-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-moz-transition:opacity .2s ease-in-out,visibility .2s ease-in-out,-moz-transform .2s cubic-bezier(0.71,1.7,0.77,1.24);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s cubic-bezier(0.71,1.7,0.77,1.24);-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);pointer-events:none}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after{visibility:visible;-ms-filter:"alpha(opacity=100)";filter:alpha(opacity=100);opacity:1}.rsssl-tooltip:before,[data-rsssl-tooltip]:before{z-index:1001;border:6px solid transparent;background:transparent;content:""}.rsssl-tooltip:after,[data-rsssl-tooltip]:after{z-index:1000;padding:8px;width:160px;background-color:#000;background-color:hsla(0,0,20%,0.9);color:#fff;content:attr(data-rsssl-tooltip);font-size:14px;line-height:1.2}[data-rsssl-tooltip]:before,[data-rsssl-tooltip]:after,.rsssl-tooltip:before,.rsssl-tooltip:after,.rsssl-tooltip-top:before,.rsssl-tooltip-top:after{bottom:100%;left:50%}[data-rsssl-tooltip]:before,.rsssl-tooltip:before,.rsssl-tooltip-top:before{margin-left:-6px;margin-bottom:-12px;border-top-color:#000;border-top-color:hsla(0,0,20%,0.9)}[data-rsssl-tooltip]:after,.rsssl-tooltip:after,.rsssl-tooltip-top:after{margin-left:-80px}[data-rsssl-tooltip]:hover:before,[data-rsssl-tooltip]:hover:after,[data-rsssl-tooltip]:focus:before,[data-rsssl-tooltip]:focus:after,.rsssl-tooltip:hover:before,.rsssl-tooltip:hover:after,.rsssl-tooltip:focus:before,.rsssl-tooltip:focus:after,.rsssl-tooltip-top:hover:before,.rsssl-tooltip-top:hover:after,.rsssl-tooltip-top:focus:before,.rsssl-tooltip-top:focus:after{-webkit-transform:translateY(-12px);-moz-transform:translateY(-12px);transform:translateY(-12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-left:after{right:100%;bottom:50%;left:auto}.rsssl-tooltip-left:before{margin-left:0;margin-right:-12px;margin-bottom:0;border-top-color:transparent;border-left-color:#000;border-left-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-left:hover:before,.rsssl-tooltip-left:hover:after,.rsssl-tooltip-left:focus:before,.rsssl-tooltip-left:focus:after{-webkit-transform:translateX(-12px);-moz-transform:translateX(-12px);transform:translateX(-12px)}.rsssl-tooltip-bottom:before,.rsssl-tooltip-bottom:after{top:100%;bottom:auto;left:50%}.rsssl-tooltip-bottom:before{margin-top:-12px;margin-bottom:0;border-top-color:transparent;border-bottom-color:#000;border-bottom-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-bottom:hover:before,.rsssl-tooltip-bottom:hover:after,.rsssl-tooltip-bottom:focus:before,.rsssl-tooltip-bottom:focus:after{-webkit-transform:translateY(12px);-moz-transform:translateY(12px);transform:translateY(12px)}.rsssl-tooltip-right:before,.rsssl-tooltip-right:after{bottom:50%;left:100%}.rsssl-tooltip-right:before{margin-bottom:0;margin-left:-12px;border-top-color:transparent;border-right-color:#000;border-right-color:hsla(0,0,20%,0.9)}.rsssl-tooltip-right:hover:before,.rsssl-tooltip-right:hover:after,.rsssl-tooltip-right:focus:before,.rsssl-tooltip-right:focus:after{-webkit-transform:translateX(12px);-moz-transform:translateX(12px);transform:translateX(12px)}.rsssl-tooltip-left:before,.rsssl-tooltip-right:before{top:3px}.rsssl-tooltip-left:after,.rsssl-tooltip-right:after{margin-left:0;margin-bottom:-16px}.rsssl-really-simple-plugins-logo{background-color:#ececec;margin-left:-15px;margin-right:-15px}.rsssl-sidebar{width:240px;margin-top:20px;padding-left:15px;padding-right:15px;margin-right:15px;padding-bottom:15px;background-color:#ececec}.rsssl-sidebar-single-content-container{min-height:125px;padding-bottom:35px;margin-bottom:10px;background-color:#fff;width:100%;border-radius:3%}.rsssl-sidebar-single-content-container-pro{background-color:#fff;min-height:125px;padding-bottom:35px;margin-bottom:10px;width:100%;border-radius:3%}.rsssl-sidebar-title h3{font-size:.9em}.rsssl-sidebar-text-content-pro{font-weight:700;font-size:.8em;width:90%;margin:auto}.rsssl-sidebar-text-content{width:45%;padding-top:5px;padding-right:7px;font-weight:700;font-size:.8em;float:right;margin:10px auto}.rsssl-pro-image{height:30px;margin-top:6px}.rsssl-sidebar-image-pro{width:90%;margin:10px}.rsssl-sidebar-image{width:100px;float:left;padding:10px;height:100px}@media screen and (max-width:1024px) and (min-width:541px){.rsssl-main{width:100%}.rsssl-sidebar-title{text-align:center}.rsssl-container{flex-direction:column}.rsssl-sidebar{width:100%}.rsssl-really-simple-plugins-logo{width:40%}.rsssl-sidebar-single-content-container{background-color:#fff;width:40%;padding-left:25px;float:left;margin-right:25px}.rsssl-sidebar-single-content-container-pro{width:40%;padding-left:25px;margin:auto auto 25px}.rsssl-sidebar-um-text-content{width:40%}.rsssl-pro-image{display:none}}@media screen and (max-width:540px){.rsssl-main{width:100%}.rsssl-container{flex-direction:column}.rsssl-sidebar{display:grid;text-align:-webkit-center;width:70%}.rsssl-sidebar-um-text-content{width:45%}.rsssl-sidebar-single-content-container-pro{padding-bottom:10px}.rsssl-sidebar-single-content-container{padding-bottom:10px}}.rsssl-sidebar h4{font-size:14px;font-style:italic}.rsssl-wrapper{padding:30px}.rsssl-sidebar-list{font-size:.9em}#rsssl-premium-button-pro{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;border:0;background-color:#000;color:white;margin-right:5px}.rsssl-sidebar-content{float:left;padding-bottom:10px}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.rsssl-container{display:flex}#rsssl-premium-button{display:inline-table;width:40%;text-align:center;float:right;font-size:inherit;height:25px;border-radius:12px;border:0;background-color:#000;color:white;margin-right:5px}.rsssl-more-info-button{border:0;border-radius:50px;clear:both;margin-top:10px}#TB_ajaxContent{text-align:center !important}#TB_window{height:370px !important}.rsssl-button-deactivate-keep-ssl{margin-right:15px}.rsssl-scan-completed .rsssl-scan-button{margin-top:17px}.rsssl-scan-button{float:left;margin-top:10px;margin-right:15px}.rsssl-switch{position:relative;display:inline-block;width:40px;height:21px}.rsssl-switch input{display:none}.rsssl-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.rsssl-slider:before{position:absolute;content:"";height:15px;width:15px;left:4px;bottom:3px;background-color:white;-webkit-transition:.4s;transition:.4s}.rsssl-slider.rsssl-round{border-radius:20px}.rsssl-slider.rsssl-round:before{border-radius:50%}input:checked+.rsssl-slider{background-color:#2daae1}input:checked+.rsssl-slider:before{-webkit-transform:translateX(17px);-ms-transform:translateX(17px);transform:translateX(17px)}input:disabled+.rsssl-slider{background-color:#b3e0f4}input:focus+.rsssl-slider{box-shadow:0 0 1px #2daae1}.debug-log{width:90%}.rsssl-dismiss-text{font-size:1em;color:#0073aa;margin-left:6px}.rsssl-dashboard-plusone{margin-left:8px}.rsssl-highlight{border-left:4px solid #46b450;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);background-image:none !important;-o-animation:fadeIt 5s ease-in-out;animation:fadeIt 5s ease-in-out}@-o-keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}@keyframes fadeIt{0{background-color:#fff}30%{background-color:#d6efd6}100%{background-color:inherit}}.form-table th{padding-left:10px}.rsssl-dashboard-dismiss .close{all:initial}.rsssl-dashboard-dismiss span{font-size:1.5em;color:darkgrey;font-family:sans-serif}.rsssl-dashboard-dismiss span:hover{cursor:pointer;color:grey}
|
force-deactivate.txt
CHANGED
@@ -115,13 +115,22 @@ function rl_deactivate_plugin( $plugin ) {
|
|
115 |
|
116 |
}
|
117 |
|
|
|
|
|
|
|
118 |
function find_wordpress_base_path() {
|
119 |
$dir = dirname(__FILE__);
|
120 |
do {
|
121 |
//it is possible to check for other files here
|
122 |
-
if( file_exists($dir."/wp-
|
123 |
return $dir;
|
124 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
} while( $dir = realpath("$dir/..") );
|
126 |
return null;
|
127 |
}
|
115 |
|
116 |
}
|
117 |
|
118 |
+
/**
|
119 |
+
* Helper function to find Wordpress base path.
|
120 |
+
*/
|
121 |
function find_wordpress_base_path() {
|
122 |
$dir = dirname(__FILE__);
|
123 |
do {
|
124 |
//it is possible to check for other files here
|
125 |
+
if( file_exists($dir."/wp-load.php") ) {
|
126 |
return $dir;
|
127 |
}
|
128 |
+
// The Bedrock wordpress structure's WP base path is not simply up the tree
|
129 |
+
// from the plugins directory; it's in the /web/wp directory.
|
130 |
+
// See https://roots.io/bedrock/docs/folder-structure/ for more info.
|
131 |
+
if (file_exists($dir."/wp")) {
|
132 |
+
return $dir."/wp";
|
133 |
+
}
|
134 |
} while( $dir = realpath("$dir/..") );
|
135 |
return null;
|
136 |
}
|
readme.txt
CHANGED
@@ -4,9 +4,9 @@ Donate link: https://www.paypal.me/reallysimplessl
|
|
4 |
Tags: SSL, https, force SSL, mixed content, insecure content, secure website, website security, TLS, security, secure socket layers, HSTS
|
5 |
Requires at least: 4.6
|
6 |
License: GPL2
|
7 |
-
Tested up to: 5.
|
8 |
Requires PHP: 5.4
|
9 |
-
Stable tag: 3.
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
@@ -15,7 +15,7 @@ Really Simple SSL automatically detects your settings and configures your websit
|
|
15 |
To keep it lightweight, the options are kept to a minimum. The entire site will move to SSL.
|
16 |
|
17 |
= Three simple steps for setup: =
|
18 |
-
* Get an SSL certificate (can't do that for you, sorry).
|
19 |
* Activate this plugin
|
20 |
* Enable SSL with one click
|
21 |
|
@@ -27,7 +27,7 @@ Any code suggestions? We're on [GitHub](https://github.com/rlankhorst/really-sim
|
|
27 |
Hopefully this plugin saves you some hours of work. If you want to support the continuing development of this plugin, you might consider buying the [premium](https://www.really-simple-ssl.com/pro/), which includes
|
28 |
some cool features.
|
29 |
= Pro features =
|
30 |
-
* The mixed content scan, which shows you what you have to do if you don't have the
|
31 |
* The option to enable HTTP Strict Transport Security
|
32 |
* The option to configure your site for the HSTS preload list
|
33 |
* Advanced security headers for additional security
|
@@ -39,10 +39,10 @@ some cool features.
|
|
39 |
= What does the plugin actually do =
|
40 |
* 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.
|
41 |
* All incoming requests are redirected to https. Default with an internal WordPress redirect, but you can also enable a .htaccess redirect.
|
42 |
-
* The
|
43 |
-
* Your insecure content is fixed by replacing all http://
|
44 |
|
45 |
-
Check out other plugins developed by Really Simple Plugins as well: [Complianz](https://wordpress.org/plugins/complianz-gdpr/)
|
46 |
|
47 |
[contact](https://www.really-simple-ssl.com/contact/) me if you have any questions, issues, or suggestions. Really Simple SSL is developed by [Really Simple Plugins](https://www.really-simple-plugins.com).
|
48 |
|
@@ -72,7 +72,7 @@ The plugin checks your certificate before enabling, but if, for example, you mig
|
|
72 |
If you can't deactivate, do not just remove the plugin folder to uninstall! Follow these [instructions](https://really-simple-ssl.com/knowledge-base/uninstall-websitebackend-not-accessible/).
|
73 |
|
74 |
= Mixed content issues =
|
75 |
-
Most mixed content issues are caused by
|
76 |
For detailed instructions on how to find mixed content read this [article](https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/).
|
77 |
|
78 |
= Redirect loop issues =
|
@@ -82,6 +82,28 @@ If you are experiencing redirect loops on your site, try these [instructions](ht
|
|
82 |
Yes. There is a dedicated network settings page where you can switch between network activated SSL and per page SSL. In the dedicated pro for multisite plugin, you can override all site settings for SSL on the network level, and can activate and deactivate SSL in the network menu for each site.
|
83 |
|
84 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
= 3.2.6 =
|
86 |
* Optimized plusone count function
|
87 |
* Disabled Javascript redirect by default
|
@@ -555,6 +577,3 @@ Always back up before any upgrade. Especially .htaccess, wp-config.php and the p
|
|
555 |
1. After activation, if SSL was detected, you can enable SSL.
|
556 |
2. View your configuration on the settings page.
|
557 |
3. Mixed content scan.
|
558 |
-
|
559 |
-
== Frequently asked questions ==
|
560 |
-
* Really Simple SSL maintains an extensive knowledge-base at https://www.really-simple-ssl.com.
|
4 |
Tags: SSL, https, force SSL, mixed content, insecure content, secure website, website security, TLS, security, secure socket layers, HSTS
|
5 |
Requires at least: 4.6
|
6 |
License: GPL2
|
7 |
+
Tested up to: 5.4
|
8 |
Requires PHP: 5.4
|
9 |
+
Stable tag: 3.3
|
10 |
|
11 |
No setup required! You only need an SSL certificate, and this plugin will do the rest.
|
12 |
|
15 |
To keep it lightweight, the options are kept to a minimum. The entire site will move to SSL.
|
16 |
|
17 |
= Three simple steps for setup: =
|
18 |
+
* Get an SSL certificate (can't do that for you, sorry.) [See our recommendations for a free SSL certificate](https://really-simple-ssl.com/knowledge-base/how-to-install-a-free-ssl-certificate-on-your-wordpress-cpanel-hosting/).
|
19 |
* Activate this plugin
|
20 |
* Enable SSL with one click
|
21 |
|
27 |
Hopefully this plugin saves you some hours of work. If you want to support the continuing development of this plugin, you might consider buying the [premium](https://www.really-simple-ssl.com/pro/), which includes
|
28 |
some cool features.
|
29 |
= Pro features =
|
30 |
+
* The mixed content scan, which shows you what you have to do if you don't have the secure lock yet
|
31 |
* The option to enable HTTP Strict Transport Security
|
32 |
* The option to configure your site for the HSTS preload list
|
33 |
* Advanced security headers for additional security
|
39 |
= What does the plugin actually do =
|
40 |
* 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.
|
41 |
* All incoming requests are redirected to https. Default with an internal WordPress redirect, but you can also enable a .htaccess redirect.
|
42 |
+
* The siteurl and homeurl are changed to https.
|
43 |
+
* Your insecure content is fixed by replacing all http:// URL's with https://, except hyperlinks to other domains. Dynamically, so no database changes are made (except for the siteurl and homeurl).
|
44 |
|
45 |
+
Check out other plugins developed by Really Simple Plugins as well: [Complianz](https://wordpress.org/plugins/complianz-gdpr/), [Zip Recipes](https://wordpress.org/plugins/zip-recipes/) and [WP Search Insights](https://wordpress.org/plugins/wp-search-insights/).
|
46 |
|
47 |
[contact](https://www.really-simple-ssl.com/contact/) me if you have any questions, issues, or suggestions. Really Simple SSL is developed by [Really Simple Plugins](https://www.really-simple-plugins.com).
|
48 |
|
72 |
If you can't deactivate, do not just remove the plugin folder to uninstall! Follow these [instructions](https://really-simple-ssl.com/knowledge-base/uninstall-websitebackend-not-accessible/).
|
73 |
|
74 |
= Mixed content issues =
|
75 |
+
Most mixed content issues are caused by URL's in css or js files.
|
76 |
For detailed instructions on how to find mixed content read this [article](https://really-simple-ssl.com/knowledge-base/how-to-track-down-mixed-content-or-insecure-content/).
|
77 |
|
78 |
= Redirect loop issues =
|
82 |
Yes. There is a dedicated network settings page where you can switch between network activated SSL and per page SSL. In the dedicated pro for multisite plugin, you can override all site settings for SSL on the network level, and can activate and deactivate SSL in the network menu for each site.
|
83 |
|
84 |
== Changelog ==
|
85 |
+
= 3.3 =
|
86 |
+
* Updated SSL activated notice
|
87 |
+
* Updated readme
|
88 |
+
|
89 |
+
= 3.2.9 =
|
90 |
+
* Fixed a bug where the redirect to settings page would abort SSL activation, not writing the wp-config fix on new installs
|
91 |
+
* Fixed typo in force-deactivate notice
|
92 |
+
|
93 |
+
= 3.2.8 =
|
94 |
+
* Added redirect to settings page after activating SSL
|
95 |
+
* Improved dashboard SSL certificate check by using the is_valid() check from rsssl_certificate instead of relying on site_has_ssl
|
96 |
+
* Updated activation notice
|
97 |
+
* Updated settings page sidebar styling and links
|
98 |
+
|
99 |
+
= 3.2.7 =
|
100 |
+
* Updated switch_to_blog function in to a backwards compatible version for older WP installations
|
101 |
+
* Updated review notice
|
102 |
+
* Improved .htaccess not writeable notice for Bitnami installations to show htaccess.conf location
|
103 |
+
* Updated green lock to secure lock text
|
104 |
+
* Removed border for dashboard sidebar button
|
105 |
+
* Activate some security headers by default when pro is enabled
|
106 |
+
|
107 |
= 3.2.6 =
|
108 |
* Optimized plusone count function
|
109 |
* Disabled Javascript redirect by default
|
577 |
1. After activation, if SSL was detected, you can enable SSL.
|
578 |
2. View your configuration on the settings page.
|
579 |
3. Mixed content scan.
|
|
|
|
|
|
rlrsssl-really-simple-ssl.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
* Plugin URI: https://www.really-simple-ssl.com
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
-
* Version: 3.
|
7 |
* Text Domain: really-simple-ssl
|
8 |
* Domain Path: /languages
|
9 |
* Author: Rogier Lankhorst, Mark Wolters
|
@@ -26,112 +26,113 @@ defined('ABSPATH') or die("you do not have access to this page!");
|
|
26 |
|
27 |
class REALLY_SIMPLE_SSL
|
28 |
{
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
130 |
}
|
131 |
|
132 |
function RSSSL()
|
133 |
{
|
134 |
-
|
135 |
}
|
136 |
|
137 |
add_action('plugins_loaded', 'RSSSL', 8);
|
3 |
* Plugin Name: Really Simple SSL
|
4 |
* Plugin URI: https://www.really-simple-ssl.com
|
5 |
* Description: Lightweight plugin without any setup to make your site SSL proof
|
6 |
+
* Version: 3.3
|
7 |
* Text Domain: really-simple-ssl
|
8 |
* Domain Path: /languages
|
9 |
* Author: Rogier Lankhorst, Mark Wolters
|
26 |
|
27 |
class REALLY_SIMPLE_SSL
|
28 |
{
|
29 |
+
private static $instance;
|
30 |
+
public $rsssl_front_end;
|
31 |
+
public $rsssl_mixed_content_fixer;
|
32 |
+
public $rsssl_multisite;
|
33 |
+
public $rsssl_cache;
|
34 |
+
public $rsssl_server;
|
35 |
+
public $really_simple_ssl;
|
36 |
+
public $rsssl_help;
|
37 |
+
public $rsssl_certificate;
|
38 |
+
|
39 |
+
private function __construct()
|
40 |
+
{
|
41 |
+
}
|
42 |
+
|
43 |
+
public static function instance()
|
44 |
+
{
|
45 |
+
if (!isset(self::$instance) && !(self::$instance instanceof REALLY_SIMPLE_SSL)) {
|
46 |
+
self::$instance = new REALLY_SIMPLE_SSL;
|
47 |
+
self::$instance->setup_constants();
|
48 |
+
self::$instance->includes();
|
49 |
+
self::$instance->rsssl_front_end = new rsssl_front_end();
|
50 |
+
self::$instance->rsssl_mixed_content_fixer = new rsssl_mixed_content_fixer();
|
51 |
+
|
52 |
+
|
53 |
+
// Backwards compatibility for add-ons
|
54 |
+
global $rsssl_front_end, $rsssl_mixed_content_fixer;
|
55 |
+
$rsssl_front_end = self::$instance->rsssl_front_end;
|
56 |
+
$rsssl_mixed_content_fixer = self::$instance->rsssl_mixed_content_fixer;
|
57 |
+
|
58 |
+
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
59 |
+
|
60 |
+
if (is_admin() || is_multisite() || $wpcli) {
|
61 |
+
if (is_multisite()) {
|
62 |
+
self::$instance->rsssl_multisite = new rsssl_multisite();
|
63 |
+
}
|
64 |
+
self::$instance->rsssl_cache = new rsssl_cache();
|
65 |
+
self::$instance->rsssl_server = new rsssl_server();
|
66 |
+
self::$instance->really_simple_ssl = new rsssl_admin();
|
67 |
+
self::$instance->rsssl_help = new rsssl_help();
|
68 |
+
self::$instance->rsssl_certificate = new rsssl_certificate();
|
69 |
+
self::$instance->rsssl_site_health = new rsssl_site_health();
|
70 |
+
|
71 |
+
// Backwards compatibility for add-ons
|
72 |
+
global $rsssl_cache, $rsssl_server, $really_simple_ssl, $rsssl_help;
|
73 |
+
$rsssl_cache = self::$instance->rsssl_cache;
|
74 |
+
$rsssl_server = self::$instance->rsssl_server;
|
75 |
+
$really_simple_ssl = self::$instance->really_simple_ssl;
|
76 |
+
$rsssl_help = self::$instance->rsssl_help;
|
77 |
+
|
78 |
+
if ( $wpcli ) {
|
79 |
+
self::$instance->rsssl_wp_cli = new rsssl_wp_cli();
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
self::$instance->hooks();
|
84 |
+
}
|
85 |
+
return self::$instance;
|
86 |
+
}
|
87 |
+
|
88 |
+
private function setup_constants()
|
89 |
+
{
|
90 |
+
define('rsssl_url', plugin_dir_url(__FILE__));
|
91 |
+
define('rsssl_path', trailingslashit(plugin_dir_path(__FILE__)));
|
92 |
+
define('rsssl_plugin', plugin_basename(__FILE__));
|
93 |
+
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
94 |
+
$plugin_data = get_plugin_data(__FILE__);
|
95 |
+
define('rsssl_version', $plugin_data['Version']);
|
96 |
+
}
|
97 |
+
|
98 |
+
private function includes()
|
99 |
+
{
|
100 |
+
require_once(rsssl_path . 'class-front-end.php');
|
101 |
+
require_once(rsssl_path . 'class-mixed-content-fixer.php');
|
102 |
+
|
103 |
+
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
|
104 |
+
|
105 |
+
if ( $wpcli ) {
|
106 |
+
require_once(rsssl_path . 'class-rsssl-wp-cli.php');
|
107 |
+
}
|
108 |
+
|
109 |
+
if (is_admin() || is_multisite() || $wpcli) {
|
110 |
+
if (is_multisite()) {
|
111 |
+
require_once(rsssl_path . 'class-multisite.php');
|
112 |
+
require_once(rsssl_path . 'multisite-cron.php');
|
113 |
+
}
|
114 |
+
require_once(rsssl_path . 'class-admin.php');
|
115 |
+
require_once(rsssl_path . 'class-cache.php');
|
116 |
+
require_once(rsssl_path . 'class-server.php');
|
117 |
+
require_once(rsssl_path . 'class-help.php');
|
118 |
+
require_once(rsssl_path . 'class-certificate.php');
|
119 |
+
require_once(rsssl_path . 'class-site-health.php');
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
private function hooks()
|
124 |
+
{
|
125 |
+
|
126 |
+
add_action('wp_loaded', array(self::$instance->rsssl_front_end, 'force_ssl'), 20);
|
127 |
+
if (is_admin() || is_multisite()) {
|
128 |
+
add_action('plugins_loaded', array(self::$instance->really_simple_ssl, 'init'), 10);
|
129 |
+
}
|
130 |
+
}
|
131 |
}
|
132 |
|
133 |
function RSSSL()
|
134 |
{
|
135 |
+
return REALLY_SIMPLE_SSL::instance();
|
136 |
}
|
137 |
|
138 |
add_action('plugins_loaded', 'RSSSL', 8);
|
ssl-test-page.php
CHANGED
@@ -35,7 +35,7 @@ if (!empty($_SERVER['HTTP_CLOUDFRONT_FORWARDED_PROTO']) && ($_SERVER['HTTP_CLOUD
|
|
35 |
$ssl = TRUE;
|
36 |
}
|
37 |
|
38 |
-
if (!empty($_SERVER['HTTP_CF_VISITOR']) && ($_SERVER[
|
39 |
echo "#CLOUDFLARE#<br>";
|
40 |
$ssl = TRUE;
|
41 |
}
|
@@ -61,7 +61,7 @@ if (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && ($_SERVER['HTTP_X_FORWARDED_SSL'
|
|
61 |
}
|
62 |
|
63 |
if ($ssl) {
|
64 |
-
echo "<br>#
|
65 |
} else {
|
66 |
echo "<br>#NO KNOWN SSL CONFIGURATION DETECTED#";
|
67 |
}
|
35 |
$ssl = TRUE;
|
36 |
}
|
37 |
|
38 |
+
if (!empty($_SERVER['HTTP_CF_VISITOR']) && (strpos($_SERVER["HTTP_CF_VISITOR"], "https") !== false)) {
|
39 |
echo "#CLOUDFLARE#<br>";
|
40 |
$ssl = TRUE;
|
41 |
}
|
61 |
}
|
62 |
|
63 |
if ($ssl) {
|
64 |
+
echo "<br>#SUCCESSFULLY DETECTED SSL#";
|
65 |
} else {
|
66 |
echo "<br>#NO KNOWN SSL CONFIGURATION DETECTED#";
|
67 |
}
|