Marius Cramer
2015-12-08 394f3e17244fa6ec1e59a15d1a7081edbb8bc947
server/plugins-available/nginx_plugin.inc.php
@@ -1144,6 +1144,7 @@
      $ssl_dir = $data['new']['document_root'].'/ssl';
      if(!isset($data['new']['ssl_domain']) OR empty($data['new']['ssl_domain'])) { $data['new']['ssl_domain'] = $data['new']['domain']; }
      $domain = $data['new']['ssl_domain'];
      if(!$domain) $domain = $data['new']['domain'];
      $tpl->setVar('ssl_domain', $domain);
      $key_file = $ssl_dir.'/'.$domain.'.key';
      $crt_file = $ssl_dir.'/'.$domain.'.crt';
@@ -1153,6 +1154,15 @@
      //* Generate Let's Encrypt SSL certificat
      if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') {
         //* be sure to have good domain
         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);
            $domain = substr($domain, 2);
         }
         $data['new']['ssl_domain'] = $domain;
         $vhost_data['ssl_domain'] = $domain;
         $lddomain = (string) "$domain";
         if($data['new']['subdomain'] == "www" OR $data['new']['subdomain'] == "*") {
            $lddomain .= (string) " --domains www." . $domain;
@@ -1181,8 +1191,10 @@
            $app->system->chown($webroot . "/.well-known/acme-challenge/", $data['new']['system_user']);
            $app->system->chgrp($webroot . "/.well-known/acme-challenge/", $data['new']['system_group']);
            $app->system->chmod($webroot . "/.well-known/acme-challenge", "g+s");
            $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth -a webroot --email postmaster@$domain --domains $lddomain --webroot-path $webroot");
            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 " . escapeshellarg($webroot));
            }
         };
         //* check is been correctly created