| | |
| | | // Make sure we only have Unix linebreaks |
| | | $vhost_data['apache_directives'] = str_replace("\r\n", "\n", $vhost_data['apache_directives']); |
| | | $vhost_data['apache_directives'] = str_replace("\r", "\n", $vhost_data['apache_directives']); |
| | | $trans = array('{DOCROOT}' => $vhost_data['web_document_root_www']); |
| | | $trans = array( |
| | | '{DOCROOT}' => $vhost_data['web_document_root_www'], |
| | | '{DOCROOT_CLIENT}' => $vhost_data['web_document_root'] |
| | | ); |
| | | $vhost_data['apache_directives'] = strtr($vhost_data['apache_directives'], $trans); |
| | | |
| | | // Check if a SSL cert exists |
| | | $ssl_dir = $data['new']['document_root'].'/ssl'; |
| | | $domain = $data['new']['ssl_domain']; |
| | | if(!$domain) $domain = $data['new']['domain']; |
| | | $key_file = $ssl_dir.'/'.$domain.'.key'; |
| | | $crt_file = $ssl_dir.'/'.$domain.'.crt'; |
| | | $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; |
| | |
| | | |
| | | //* Generate Let's Encrypt SSL certificat |
| | | 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); |
| | | $domain = substr($domain, 2); |
| | | } |
| | | |
| | | $data['new']['ssl_domain'] = $domain; |
| | | $vhost_data['ssl_domain'] = $domain; |
| | | |
| | |
| | | $app->system->chmod($webroot . "/.well-known/acme-challenge", "g+s"); |
| | | |
| | | 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 --webroot-path --email postmaster@$domain --domains $lddomain --webroot-path " . escapeshellarg($webroot)); |
| | | $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)); |
| | | } |
| | | }; |
| | | |