diff -u -r /root/ispconfig/interface/web/sites/form/web_domain.tform.php /usr/local/ispconfig/interface/web/sites/form/web_domain.tform.php --- /root/ispconfig/interface/web/sites/form/web_domain.tform.php 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/form/web_domain.tform.php 2015-11-05 02:28:13.272000000 +0100 @@ -232,6 +232,12 @@ 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'ssl_letsencrypt' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'php' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', diff -u -r /root/ispconfig/interface/web/sites/lib/lang/ar_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/ar_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/ar_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/ar_web_domain.lng 2015-11-06 18:36:40.896000000 +0100 @@ -28,6 +28,7 @@ $wb['errordocs_txt'] = 'Own Error-Documents'; $wb['subdomain_txt'] = 'Auto-Subdomain'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Client'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/bg_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/bg_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/bg_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/bg_web_domain.lng 2015-11-06 18:36:41.096000000 +0100 @@ -26,6 +26,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Собствени страници за грешки'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Клиент'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/br_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/br_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/br_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/br_web_domain.lng 2015-11-06 18:36:40.896000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Suas Páginas de Erro'; $wb['subdomain_txt'] = 'Auto-Subdomínio'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/cz_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/cz_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/cz_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/cz_web_domain.lng 2015-11-06 18:36:40.920000000 +0100 @@ -27,6 +27,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['subdomain_txt'] = 'Automatická subdoména'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klient'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/de_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/de_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/de_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/de_web_domain.lng 2015-11-06 18:36:38.772000000 +0100 @@ -27,6 +27,7 @@ $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Kunde'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/el_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/el_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/el_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/el_web_domain.lng 2015-11-06 18:36:39.484000000 +0100 @@ -30,6 +30,7 @@ $wb['errordocs_txt'] = 'Προσωπικά έγγραφα σφάλματος'; $wb['subdomain_txt'] = 'Auto-Subdomain'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Πελάτης'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/en_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/en_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/en_web_domain.lng 2015-11-07 13:37:31.740000000 +0100 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/en_web_domain.lng 2015-11-07 13:37:36.004000000 +0100 @@ -33,6 +33,7 @@ $wb["errordocs_txt"] = 'Own Error-Documents'; $wb["subdomain_txt"] = 'Auto-Subdomain'; $wb["ssl_txt"] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb["suexec_txt"] = 'SuEXEC'; $wb["php_txt"] = 'PHP'; $wb["client_txt"] = 'Client'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/es_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/es_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/es_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/es_web_domain.lng 2015-11-06 18:36:38.360000000 +0100 @@ -31,6 +31,7 @@ $wb['errordocs_txt'] = 'Documentos propios de error'; $wb['subdomain_txt'] = 'Auto-Subdominio'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/fi_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/fi_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/fi_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/fi_web_domain.lng 2015-11-06 18:36:38.376000000 +0100 @@ -25,6 +25,7 @@ $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Asiakas'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/fr_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/fr_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/fr_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/fr_web_domain.lng 2015-11-06 18:36:41.744000000 +0100 @@ -25,6 +25,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Pages derreurs personnalisées'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Client'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/hr_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/hr_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/hr_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/hr_web_domain.lng 2015-11-06 18:36:38.412000000 +0100 @@ -30,6 +30,7 @@ $wb['errordocs_txt'] = 'Vlastite error stranice'; $wb['subdomain_txt'] = 'Automatska poddomena'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klijent'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/hu_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/hu_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/hu_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/hu_web_domain.lng 2015-11-06 18:36:35.844000000 +0100 @@ -26,6 +26,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Saját hibaoldal'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['disabled_txt'] = 'Letiltva'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/id_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/id_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/id_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/id_web_domain.lng 2015-11-06 18:36:36.228000000 +0100 @@ -28,6 +28,7 @@ $wb['errordocs_txt'] = 'Dokumen-Kesalahan Pribadi'; $wb['subdomain_txt'] = 'Subdomain Otomatis'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klien'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/it_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/it_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/it_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/it_web_domain.lng 2015-11-06 18:36:36.892000000 +0100 @@ -26,6 +26,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Errori personalizzati'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/ja_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/ja_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/ja_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/ja_web_domain.lng 2015-11-06 18:36:34.476000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = '独自のエラーページを使う'; $wb['subdomain_txt'] = '自動サブドメイン'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'クライアント'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/nl_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/nl_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/nl_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/nl_web_domain.lng 2015-11-06 18:36:35.852000000 +0100 @@ -30,6 +30,7 @@ $wb['errordocs_txt'] = 'Own Error-documenten'; $wb['subdomain_txt'] = 'Auto-subdomein'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klant'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/pl_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/pl_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/pl_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/pl_web_domain.lng 2015-11-06 18:36:35.828000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Własne strony błędów'; $wb['subdomain_txt'] = 'Automatyczna subdomena'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klient'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/pt_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/pt_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/pt_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/pt_web_domain.lng 2015-11-06 18:36:33.296000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Páginas de Erro'; $wb['subdomain_txt'] = 'Auto-Subdomínio'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/ro_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/ro_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/ro_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/ro_web_domain.lng 2015-11-06 18:36:33.884000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Own Error-Documents'; $wb['subdomain_txt'] = 'Auto-Subdomain'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Client'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/ru_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/ru_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/ru_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/ru_web_domain.lng 2015-11-06 18:36:54.424000000 +0100 @@ -25,6 +25,7 @@ $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Клиент'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/se_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/se_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/se_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/se_web_domain.lng 2015-11-06 18:36:33.256000000 +0100 @@ -26,6 +26,7 @@ $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Own Error-Documents'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Client'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/sk_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/sk_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/sk_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/sk_web_domain.lng 2015-11-06 18:36:33.096000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Vlastné Error-Dokumenty'; $wb['subdomain_txt'] = 'Auto-Subdomény'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Klient'; diff -u -r /root/ispconfig/interface/web/sites/lib/lang/tr_web_domain.lng /usr/local/ispconfig/interface/web/sites/lib/lang/tr_web_domain.lng --- /root/ispconfig/interface/web/sites/lib/lang/tr_web_domain.lng 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/interface/web/sites/lib/lang/tr_web_domain.lng 2015-11-06 18:39:23.560000000 +0100 @@ -27,6 +27,7 @@ $wb['errordocs_txt'] = 'Özelleştirilebilir Hata Sayfaları'; $wb['subdomain_txt'] = 'Otomatik Subdomain'; $wb['ssl_txt'] = 'SSL'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; diff -u -r /root/ispconfig/interface/web/sites/templates/web_domain_edit.htm /usr/local/ispconfig/interface/web/sites/templates/web_domain_edit.htm --- /root/ispconfig/interface/web/sites/templates/web_domain_edit.htm 2015-11-06 20:44:44.560000000 +0100 +++ /usr/local/ispconfig/interface/web/sites/templates/web_domain_edit.htm 2015-11-06 20:44:05.192000000 +0100 @@ -130,6 +130,12 @@
{tmpl_var name='ssl'}
+ +
+

{tmpl_var name='ssl_letsencrypt_txt'}

+
+ {tmpl_var name='ssl_letsencrypt'} +
@@ -261,5 +267,11 @@ submitForm('pageForm','sites/web_domain_edit.php'); }); - - \ No newline at end of file + + jQuery('input#ssl_letsencrypt').bind('change', function() { + if(jQuery('input#ssl_letsencrypt').is(":checked")) jQuery('input#ssl').prop('checked', true); + }); + jQuery('input#ssl').bind('change', function() { + if(jQuery('input#ssl_letsencrypt').is(":checked")) jQuery('input#ssl_letsencrypt').prop('checked', false); + }); + diff -u -r /root/ispconfig/server/conf/nginx_vhost.conf.master /usr/local/ispconfig/server/conf/nginx_vhost.conf.master --- /root/ispconfig/server/conf/nginx_vhost.conf.master 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/server/conf/nginx_vhost.conf.master 2015-11-08 02:40:25.192000000 +0100 @@ -105,12 +105,14 @@ access_log /var/log/ispconfig/httpd//access.log combined; ## Disable .htaccess and other hidden files + location ~ /\. { deny all; access_log off; log_not_found off; } - + + location = /favicon.ico { log_not_found off; access_log off; @@ -229,4 +231,4 @@ } } - \ No newline at end of file + diff -u -r /root/ispconfig/server/plugins-available/apache2_plugin.inc.php /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php --- /root/ispconfig/server/plugins-available/apache2_plugin.inc.php 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/server/plugins-available/apache2_plugin.inc.php 2015-11-08 03:03:12.028000000 +0100 @@ -935,7 +935,7 @@ // Check if a SSL cert exists $ssl_dir = $data['new']['document_root'].'/ssl'; - $domain = $data['new']['ssl_domain']; + $domain = $data['new']['domain']; $key_file = $ssl_dir.'/'.$domain.'.key'; $crt_file = $ssl_dir.'/'.$domain.'.crt'; $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; @@ -950,6 +950,57 @@ } */ + //* Generate Let's Encrypt SSL certificat + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { +//* TODO: check dns entry is correct + $crt_tmp_file = "/etc/letsencrypt/live/".$domain."/cert.pem"; + $key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem"; + $webroot = $data['new']['document_root']."/web"; + + //* check if we have already a Let's Encrypt cert + if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) { + exec("/root/.local/share/letsencrypt/bin/letsencrypt auth -a webroot --email postmaster@$domain --domains $domain --webroot-path $webroot --text --agree-tos"); + $app->log("Creating Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); + }; + + //* check is been correctly created + if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) { + $date = date("YmdHis"); +//* TODO: check if is a symlink, if target same keep it, either remove it + if(is_file($key_file)) { + $app->system->copy($key_file, $key_file.'.old'.$date); + $app->system->chmod($key_file.'.old.'.$date, 0400); + $app->system->unlink($key_file); + } + + if ($web_config["website_symlinks_rel"] == 'y') { + $this->create_relative_link(escapeshellcmd($key_tmp_file), escapeshellcmd($key_file)); + } else { + exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); + } + + if(is_file($crt_file)) { + $app->system->copy($crt_file, $crt_file.'.old.'.$date); + $app->system->chmod($crt_file.'.old.'.$date, 0400); + $app->system->unlink($crt_file); + } + + if($web_config["website_symlinks_rel"] == 'y') { + $this->create_relative_link(escapeshellcmd($crt_tmp_file), escapeshellcmd($crt_file)); + } else { + exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); + } + + /* we don't need to store it. + /* Update the DB of the (local) Server */ + $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '$ssl_cert', ssl_key = '$ssl_key' WHERE domain = '".$data['new']['domain']."'"); + $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); + /* Update also the master-DB of the Server-Farm */ + $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '$ssl_cert', ssl_key = '$ssl_key' WHERE domain = '".$data['new']['domain']."'"); + $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); + } + }; + if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; //$vhost_data['document_root'] = $data['new']['document_root'].'/' . $web_folder; diff -u -r /root/ispconfig/server/plugins-available/nginx_plugin.inc.php /usr/local/ispconfig/server/plugins-available/nginx_plugin.inc.php --- /root/ispconfig/server/plugins-available/nginx_plugin.inc.php 2015-06-05 10:06:30.000000000 +0200 +++ /usr/local/ispconfig/server/plugins-available/nginx_plugin.inc.php 2015-11-08 03:13:36.524000000 +0100 @@ -1102,10 +1102,66 @@ // Check if a SSL cert exists $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']; + $tpl->setVar('ssl_domain', $domain); $key_file = $ssl_dir.'/'.$domain.'.key'; $crt_file = $ssl_dir.'/'.$domain.'.crt'; + + $tpl->setVar('ssl_letsencrypt', "n"); + //* Generate Let's Encrypt SSL certificat + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { + $tpl->setVar('ssl_letsencrypt', "y"); + //* TODO: check dns entry is correct + $crt_tmp_file = "/etc/letsencrypt/live/".$domain."/fullchain.pem"; + $key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem"; + $webroot = $data['new']['document_root']."/web"; + + //* check if we have already a Let's Encrypt cert + if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) { + exec("/root/.local/share/letsencrypt/bin/letsencrypt auth -a webroot --email postmaster@$domain --domains $domain --webroot-path $webroot --text --agree-tos"); + $app->log("Creating Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); + }; + + //* check is been correctly created + if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) { + $date = date("YmdHis"); +//* TODO: check if is a symlink, if target same keep it, either remove it + if(is_file($key_file)) { + $app->system->copy($key_file, $key_file.'.old'.$date); + $app->system->chmod($key_file.'.old.'.$date, 0400); + $app->system->unlink($key_file); + } + + if ($web_config["website_symlinks_rel"] == 'y') { + $this->create_relative_link(escapeshellcmd($key_tmp_file), escapeshellcmd($key_file)); + } else { + exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); + } + + if(is_file($crt_file)) { + $app->system->copy($crt_file, $crt_file.'.old.'.$date); + $app->system->chmod($crt_file.'.old.'.$date, 0400); + $app->system->unlink($crt_file); + } + + if($web_config["website_symlinks_rel"] == 'y') { + $this->create_relative_link(escapeshellcmd($crt_tmp_file), escapeshellcmd($crt_file)); + } else { + exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); + } + + /* we don't need to store it. + /* Update the DB of the (local) Server */ + $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = '".$data['new']['domain']."'"); + $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); + /* Update also the master-DB of the Server-Farm */ + $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '', ssl_key = '' WHERE domain = '".$data['new']['domain']."'"); + $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'"); + } + }; + if($domain!='' && $data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file) && (@filesize($crt_file)>0) && (@filesize($key_file)>0)) { $vhost_data['ssl_enabled'] = 1; $app->log('Enable SSL for: '.$domain, LOGLEVEL_DEBUG);