Marius Burkard
2016-02-29 50306f0211e83560169a0f09fad1db3423befb62
server/plugins-available/apache2_plugin.inc.php
@@ -1052,6 +1052,10 @@
                        }
                     }
                  }
                  foreach($sub_prefixes as $s) {
                     $temp_domains[] = $s . $aliasdomain['domain'];
                  }
               }
            }
         }
@@ -1115,14 +1119,7 @@
      }
      */
      //* Generate Let's Encrypt SSL certificat
      if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y' && ( // ssl and let's encrypt is active
         ($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
         || ($data['old']['domain'] != $data['new']['domain']) // we have domain update
         || ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
         || ($data['new']['type'] == 'subdomain') // we have new or update on subdomain
         || ($data['old']['type'] == 'alias' || $data['new']['type'] == 'alias') // we have new or update on aliasdomain
      )) {
      if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') {
         if(substr($domain, 0, 2) === '*.') {
            // wildcard domain not yet supported by letsencrypt!
            $app->log('Wildcard domains not yet supported by letsencrypt, so changing ' . $domain . ' to ' . substr($domain, 2), LOGLEVEL_WARN);
@@ -1131,12 +1128,22 @@
         
         $data['new']['ssl_domain'] = $domain;
         $vhost_data['ssl_domain'] = $domain;
      }
      //* Generate Let's Encrypt SSL certificat
      if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y' && ( // ssl and let's encrypt is active
         ($data['old']['ssl'] == 'n' || $data['old']['ssl_letsencrypt'] == 'n') // we have new let's encrypt configuration
         || ($data['old']['domain'] != $data['new']['domain']) // we have domain update
         || ($data['old']['subdomain'] != $data['new']['subdomain']) // we have new or update on "auto" subdomain
         || ($data['new']['type'] == 'subdomain') // we have new or update on subdomain
         || ($data['old']['type'] == 'alias' || $data['new']['type'] == 'alias') // we have new or update on aliasdomain
      )) {
         // default values
         $temp_domains = array();
         $lddomain = $domain;
         $subdomains = null;
         $aliasdomains = null;
         $sub_prefixes = array();
         //* be sure to have good domain
         if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
@@ -1148,6 +1155,7 @@
         if(is_array($subdomains)) {
            foreach($subdomains as $subdomain) {
               $temp_domains[] = $subdomain['domain'];
               $sub_prefixes[] = str_replace($domain, "", $subdomain['domain']);
            }
         }
         
@@ -1184,7 +1192,7 @@
            $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
            if(file_exists("/root/.local/share/letsencrypt/bin/letsencrypt")) {
               $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme-challenge");
               $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path /usr/local/ispconfig/interface/acme");
            }
         };
@@ -1703,7 +1711,7 @@
               $data['new']['ipv6_address'] = implode(':', $explode_v6);
            }
         }
         if($data['new']['ipv6_address'] == '*') $data['new']['ipv6_address'] = '::';
         $tmp_vhost_arr = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80);
         if(count($rewrite_rules) > 0)  $tmp_vhost_arr = $tmp_vhost_arr + array('redirects' => $rewrite_rules);
         if(count($alias_seo_redirects) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('alias_seo_redirects' => $alias_seo_redirects);