diff --git a/http/http.ssl.inc b/http/http.ssl.inc
index 72d2ab3..d68ddaa 100644
--- a/http/http.ssl.inc
+++ b/http/http.ssl.inc
@@ -105,7 +105,13 @@ class provisionService_http_ssl extends provisionService_http_public {
     $path = "{$this->server->http_ssld_path}/{$ssl_key}";
     $certs['ssl_cert_key'] = "{$path}/openssl.key";
     $certs['ssl_cert'] = "{$path}/openssl.crt";
-
+    
+    // If the chain file exists, add it    
+    $cert_chain_source = "{$source_path}/openssl_chain.crt";
+    if( provision_file()->exists($cert_chain_source)->status() ) {
+      $certs['ssl_cert_chain'] = "{$path}/openssl_chain.crt";
+      $certs['ssl_cert_chain_source'] = $cert_chain_source;
+    }
     return $certs;
   }
 
@@ -296,7 +302,12 @@ class provisionConfig_http_ssl_site extends provisionConfig_http_site {
       provision_file()->copy(
         $this->data['ssl_cert_key_source'],
         $this->data['ssl_cert_key']);
-
+      // Copy the chain certificate, if it is set
+      if(!empty($this->data['ssl_cert_chain_source'])) {
+	provision_file()->copy(
+        $this->data['ssl_cert_chain_source'],
+        $this->data['ssl_cert_chain']);
+      }
       // Sync the key directory to the remote server.
       $this->data['server']->sync($path, array(
        'exclude' => "{$path}/*.receipt",  // Don't need to synch the receipts
