diff --git a/drush/Provision/Config/Http/Https/Site.php b/drush/Provision/Config/Http/Https/Site.php
index 6ea0694..a6a1c31 100644
--- a/drush/Provision/Config/Http/Https/Site.php
+++ b/drush/Provision/Config/Http/Https/Site.php
@@ -39,6 +39,12 @@ class Provision_Config_Http_Https_Site extends Provision_Config_Http_Site {
           $this->https_cert_ok = FALSE;
         }
       }
+
+      // If cert is not ok, turn off ssl_redirection.
+      if ($this->https_cert_ok == FALSE) {
+        $this->data['ssl_redirection'] = FALSE;
+      }
+
       // Sync the key directory to the remote server.
       $this->data['server']->sync($path);
     }
diff --git a/drush/Provision/Service/http/https.php b/drush/Provision/Service/http/https.php
index 65e6c09..5f6fdeb 100644
--- a/drush/Provision/Service/http/https.php
+++ b/drush/Provision/Service/http/https.php
@@ -69,12 +69,6 @@ class Provision_Service_http_https extends Provision_Service_http_public {
         $certs = $this->server->service('Certificate')->get_certificates($this->context->https_key);
         $data = array_merge($data, $certs);
       }
-
-      // Turn off https and redirection if the cert key is not readable or doesn't exist for some reason.
-      if (!is_readable($data['https_cert_key'])) {
-        $this->context->https_enabled = FALSE;
-        $data['ssl_redirection'] = FALSE;
-      }
     }
 
     return $data;
diff --git a/submodules/apache_https/drush/Provision/Config/Apache/Https/vhost_https.tpl.php b/submodules/apache_https/drush/Provision/Config/Apache/Https/vhost_https.tpl.php
index ecc9756..b7bdcac 100644
--- a/submodules/apache_https/drush/Provision/Config/Apache/Https/vhost_https.tpl.php
+++ b/submodules/apache_https/drush/Provision/Config/Apache/Https/vhost_https.tpl.php
@@ -1,5 +1,5 @@
 
-<?php if ($this->https_enabled && $this->https_key) : ?>
+<?php if ($this->https_enabled && $this->https_key && $this->https_cert_ok) : ?>
 
   <VirtualHost <?php print "*:{$https_port}"; ?>>
   <?php if ($this->site_mail) : ?>
