Add Let's Encrypt to admin - GUI

Signed-off-by: Florian Aders <eleras@froxlor.org>
This commit is contained in:
Florian Aders
2016-01-30 14:34:26 +01:00
parent f3a7a9c342
commit c189ad759b
3 changed files with 48 additions and 6 deletions

View File

@@ -516,6 +516,11 @@ if ($page == 'domains'
$ssl_redirect = (int)$_POST['ssl_redirect']; $ssl_redirect = (int)$_POST['ssl_redirect'];
} }
$letsencrypt = 0;
if (isset($_POST['letsencrypt'])) {
$letsencrypt = (int)$_POST['letsencrypt'];
}
$ssl_ipandports = array(); $ssl_ipandports = array();
if (isset($_POST['ssl_ipandport']) && !is_array($_POST['ssl_ipandport'])) { if (isset($_POST['ssl_ipandport']) && !is_array($_POST['ssl_ipandport'])) {
$_POST['ssl_ipandport'] = unserialize($_POST['ssl_ipandport']); $_POST['ssl_ipandport'] = unserialize($_POST['ssl_ipandport']);
@@ -547,12 +552,14 @@ if ($page == 'domains'
} }
} else { } else {
$ssl_redirect = 0; $ssl_redirect = 0;
$letsencrypt = 0;
// we need this for the serialize // we need this for the serialize
// if ssl is disabled or no ssl-ip/port exists // if ssl is disabled or no ssl-ip/port exists
$ssl_ipandports[] = -1; $ssl_ipandports[] = -1;
} }
} else { } else {
$ssl_redirect = 0; $ssl_redirect = 0;
$letsencrypt = 0;
// we need this for the serialize // we need this for the serialize
// if ssl is disabled or no ssl-ip/port exists // if ssl is disabled or no ssl-ip/port exists
$ssl_ipandports[] = -1; $ssl_ipandports[] = -1;
@@ -702,7 +709,8 @@ if ($page == 'domains'
'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests, 'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests,
'specialsettings' => $specialsettings, 'specialsettings' => $specialsettings,
'registration_date' => $registration_date, 'registration_date' => $registration_date,
'issubof' => $issubof 'issubof' => $issubof,
'letsencrypt' => $letsencrypt
); );
$security_questions = array( $security_questions = array(
@@ -751,7 +759,8 @@ if ($page == 'domains'
'phpsettingid' => $phpsettingid, 'phpsettingid' => $phpsettingid,
'mod_fcgid_starter' => $mod_fcgid_starter, 'mod_fcgid_starter' => $mod_fcgid_starter,
'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests, 'mod_fcgid_maxrequests' => $mod_fcgid_maxrequests,
'ismainbutsubto' => $issubof 'ismainbutsubto' => $issubof,
'letsencrypt' => $letsencrypt
); );
$ins_stmt = Database::prepare(" $ins_stmt = Database::prepare("
@@ -782,7 +791,8 @@ if ($page == 'domains'
`phpsettingid` = :phpsettingid, `phpsettingid` = :phpsettingid,
`mod_fcgid_starter` = :mod_fcgid_starter, `mod_fcgid_starter` = :mod_fcgid_starter,
`mod_fcgid_maxrequests` = :mod_fcgid_maxrequests, `mod_fcgid_maxrequests` = :mod_fcgid_maxrequests,
`ismainbutsubto` = :ismainbutsubto `ismainbutsubto` = :ismainbutsubto,
`letsencrypt` = :letsencrypt
"); ");
Database::pexecute($ins_stmt, $ins_data); Database::pexecute($ins_stmt, $ins_data);
$domainid = Database::lastInsertId(); $domainid = Database::lastInsertId();
@@ -1288,6 +1298,11 @@ if ($page == 'domains'
$ssl_redirect = (int)$_POST['ssl_redirect']; $ssl_redirect = (int)$_POST['ssl_redirect'];
} }
$letsencrypt = 0;
if (isset($_POST['letsencrypt'])) {
$letsencrypt = (int)$_POST['letsencrypt'];
}
$ssl_ipandports = array(); $ssl_ipandports = array();
if (isset($_POST['ssl_ipandport']) && !is_array($_POST['ssl_ipandport'])) { if (isset($_POST['ssl_ipandport']) && !is_array($_POST['ssl_ipandport'])) {
$_POST['ssl_ipandport'] = unserialize($_POST['ssl_ipandport']); $_POST['ssl_ipandport'] = unserialize($_POST['ssl_ipandport']);
@@ -1314,12 +1329,14 @@ if ($page == 'domains'
} }
} else { } else {
$ssl_redirect = 0; $ssl_redirect = 0;
$letsencrypt = 0;
// we need this for the serialize // we need this for the serialize
// if ssl is disabled or no ssl-ip/port exists // if ssl is disabled or no ssl-ip/port exists
$ssl_ipandports[] = -1; $ssl_ipandports[] = -1;
} }
} else { } else {
$ssl_redirect = 0; $ssl_redirect = 0;
$letsencrypt = 0;
// we need this for the serialize // we need this for the serialize
// if ssl is disabled or no ssl-ip/port exists // if ssl is disabled or no ssl-ip/port exists
$ssl_ipandports[] = -1; $ssl_ipandports[] = -1;
@@ -1443,7 +1460,8 @@ if ($page == 'domains'
'speciallogfile' => $speciallogfile, 'speciallogfile' => $speciallogfile,
'speciallogverified' => $speciallogverified, 'speciallogverified' => $speciallogverified,
'ipandport' => serialize($ipandports), 'ipandport' => serialize($ipandports),
'ssl_ipandport' => serialize($ssl_ipandports) 'ssl_ipandport' => serialize($ssl_ipandports),
'letsencrypt' => $letsencrypt
); );
$security_questions = array( $security_questions = array(
@@ -1478,6 +1496,7 @@ if ($page == 'domains'
|| $issubof != $result['ismainbutsubto'] || $issubof != $result['ismainbutsubto']
|| $email_only != $result['email_only'] || $email_only != $result['email_only']
|| ($speciallogfile != $result['speciallogfile'] && $speciallogverified == '1') || ($speciallogfile != $result['speciallogfile'] && $speciallogverified == '1')
|| $letsencrypt != $result['letsencrypt']
) { ) {
inserttask('1'); inserttask('1');
} }
@@ -1613,6 +1632,7 @@ if ($page == 'domains'
$update_data['specialsettings'] = $specialsettings; $update_data['specialsettings'] = $specialsettings;
$update_data['registration_date'] = $registration_date; $update_data['registration_date'] = $registration_date;
$update_data['ismainbutsubto'] = $issubof; $update_data['ismainbutsubto'] = $issubof;
$update_data['letsencrypt'] = $letsencrypt;
$update_data['id'] = $id; $update_data['id'] = $id;
$update_stmt = Database::prepare(" $update_stmt = Database::prepare("
@@ -1638,7 +1658,8 @@ if ($page == 'domains'
`mod_fcgid_maxrequests` = :mod_fcgid_maxrequests, `mod_fcgid_maxrequests` = :mod_fcgid_maxrequests,
`specialsettings` = :specialsettings, `specialsettings` = :specialsettings,
`registration_date` = :registration_date, `registration_date` = :registration_date,
`ismainbutsubto` = :ismainbutsubto `ismainbutsubto` = :ismainbutsubto,
`letsencrypt` = :letsencrypt
WHERE `id` = :id WHERE `id` = :id
"); ");
Database::pexecute($update_stmt, $update_data); Database::pexecute($update_stmt, $update_data);
@@ -1653,9 +1674,10 @@ if ($page == 'domains'
// if we have no more ssl-ip's for this domain, // if we have no more ssl-ip's for this domain,
// all its subdomains must have "ssl-redirect = 0" // all its subdomains must have "ssl-redirect = 0"
// and disable let's encrypt
$update_sslredirect = ''; $update_sslredirect = '';
if (count($ssl_ipandports) == 1 && $ssl_ipandports[0] == -1) { if (count($ssl_ipandports) == 1 && $ssl_ipandports[0] == -1) {
$update_sslredirect = ", `ssl_redirect` = '0' "; $update_sslredirect = ", `ssl_redirect` = '0', `letsencrypt` = '0' ";
} }
$_update_stmt = Database::prepare(" $_update_stmt = Database::prepare("

View File

@@ -113,6 +113,16 @@ return array(
), ),
'value' => array() 'value' => array()
), ),
'letsencrypt' => array(
'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false),
'label' => $lng['domains']['letsencrypt']['title'],
'desc' => $lng['domains']['letsencrypt']['description'],
'type' => 'checkbox',
'values' => array(
array ('label' => $lng['panel']['yes'], 'value' => '1')
),
'value' => array()
),
'no_ssl_available_info' => array( 'no_ssl_available_info' => array(
'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports == '' ? true : false) : false), 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports == '' ? true : false) : false),
'label' => 'SSL', 'label' => 'SSL',

View File

@@ -124,6 +124,16 @@ return array(
), ),
'value' => array($result['ssl_redirect']) 'value' => array($result['ssl_redirect'])
), ),
'letsencrypt' => array(
'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports != '' ? true : false) : false),
'label' => $lng['domains']['letsencrypt']['title'],
'desc' => $lng['domains']['letsencrypt']['description'],
'type' => 'checkbox',
'values' => array(
array ('label' => $lng['panel']['yes'], 'value' => '1')
),
'value' => array($result['letsencrypt'])
),
'no_ssl_available_info' => array( 'no_ssl_available_info' => array(
'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports == '' ? true : false) : false), 'visible' => (Settings::Get('system.use_ssl') == '1' ? ($ssl_ipsandports == '' ? true : false) : false),
'label' => 'SSL', 'label' => 'SSL',