mirror of
https://github.com/PhyreApps/PhyrePanel.git
synced 2024-11-21 23:20:24 +00:00
Update WildcardDomain.php
This commit is contained in:
parent
f99c200e56
commit
47c651251f
1 changed files with 135 additions and 81 deletions
|
@ -45,101 +45,155 @@ class WildcardDomain extends BaseSettings
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function installCertificates()
|
public function checkCertificateFilesExist($domain)
|
||||||
{
|
{
|
||||||
$masterDomain = new MasterDomain();
|
|
||||||
$masterDomain->domain = setting('general.wildcard_domain');
|
|
||||||
|
|
||||||
$findWildcardSsl = DomainSslCertificate::where('domain', '*.'.$masterDomain->domain)->first();
|
$sslCertificateFilePath = '/root/.acmephp/master/certs/*.'.$domain.'/public/cert.pem';
|
||||||
if ($findWildcardSsl) {
|
$sslCertificateKeyFilePath = '/root/.acmephp/master/certs/*.'.$domain.'/private/key.private.pem';
|
||||||
return [
|
$sslCertificateChainFilePath = '/root/.acmephp/master/certs/*.'.$domain.'/public/fullchain.pem';
|
||||||
'error' => 'Domain already secured'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (file_exists($this->installLogFilePath)) {
|
|
||||||
unlink($this->installLogFilePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
$acmeConfigYaml = view('letsencrypt::actions.acme-config-wildcard-yaml', [
|
|
||||||
'domain' => $masterDomain->domain,
|
|
||||||
'domainRoot' => $masterDomain->domainRoot,
|
|
||||||
'domainPublic' => $masterDomain->domainPublic,
|
|
||||||
'email' => $masterDomain->email,
|
|
||||||
'country' => $masterDomain->country,
|
|
||||||
'locality' => $masterDomain->locality,
|
|
||||||
'organization' => $masterDomain->organization
|
|
||||||
])->render();
|
|
||||||
|
|
||||||
$acmeConfigYaml = preg_replace('~(*ANY)\A\s*\R|\s*(?!\r\n)\s$~mu', '', $acmeConfigYaml);
|
|
||||||
|
|
||||||
file_put_contents($masterDomain->domainRoot.'/acme-wildcard-config.yaml', $acmeConfigYaml);
|
|
||||||
|
|
||||||
$amePHPPharFile = base_path().'/Modules/LetsEncrypt/Actions/acmephp.phar';
|
|
||||||
|
|
||||||
if (!is_dir(dirname($this->installLogFilePath))) {
|
|
||||||
shell_exec('mkdir -p ' . dirname($this->installLogFilePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
//$phyrePHP = ApiClient::getPhyrePHP();
|
|
||||||
$phyrePHP = 'phyre-php';
|
|
||||||
$command = $phyrePHP.' '.$amePHPPharFile.' run '.$masterDomain->domainRoot.'/acme-wildcard-config.yaml >> ' . $this->installLogFilePath . ' &';
|
|
||||||
shell_exec($command);
|
|
||||||
|
|
||||||
$validateCertificates = [];
|
|
||||||
$sslCertificateFilePath = '/root/.acmephp/master/certs/*.'.$masterDomain->domain.'/public/cert.pem';
|
|
||||||
$sslCertificateKeyFilePath = '/root/.acmephp/master/certs/*.'.$masterDomain->domain.'/private/key.private.pem';
|
|
||||||
$sslCertificateChainFilePath = '/root/.acmephp/master/certs/*.'.$masterDomain->domain.'/public/fullchain.pem';
|
|
||||||
|
|
||||||
if (! file_exists($sslCertificateFilePath)
|
|
||||||
|| ! file_exists($sslCertificateKeyFilePath)
|
|
||||||
|| ! file_exists($sslCertificateChainFilePath)) {
|
|
||||||
// Cant get all certificates
|
|
||||||
return [
|
|
||||||
'error' => 'Cant get all certificates.'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$sslCertificateFileContent = file_get_contents($sslCertificateFilePath);
|
$sslCertificateFileContent = file_get_contents($sslCertificateFilePath);
|
||||||
$sslCertificateKeyFileContent = file_get_contents($sslCertificateKeyFilePath);
|
$sslCertificateKeyFileContent = file_get_contents($sslCertificateKeyFilePath);
|
||||||
$sslCertificateChainFileContent = file_get_contents($sslCertificateChainFilePath);
|
$sslCertificateChainFileContent = file_get_contents($sslCertificateChainFilePath);
|
||||||
|
|
||||||
if (! empty($sslCertificateChainFileContent)) {
|
|
||||||
$validateCertificates['certificate'] = $sslCertificateFileContent;
|
if (file_exists($sslCertificateFilePath)
|
||||||
}
|
&& file_exists($sslCertificateKeyFilePath)
|
||||||
if (! empty($sslCertificateKeyFileContent)) {
|
&& file_exists($sslCertificateChainFilePath)) {
|
||||||
$validateCertificates['private_key'] = $sslCertificateKeyFileContent;
|
|
||||||
}
|
|
||||||
if (! empty($sslCertificateChainFileContent)) {
|
|
||||||
$validateCertificates['certificate_chain'] = $sslCertificateChainFileContent;
|
|
||||||
}
|
|
||||||
if (count($validateCertificates) !== 3) {
|
|
||||||
// Cant get all certificates
|
|
||||||
return [
|
return [
|
||||||
'error' => 'Cant get all certificates.'
|
'sslFiles' => [
|
||||||
|
'certificate' => $sslCertificateFilePath,
|
||||||
|
'certificateContent' => $sslCertificateFileContent,
|
||||||
|
'privateKey' => $sslCertificateKeyFilePath,
|
||||||
|
'privateKeyContent' => $sslCertificateKeyFileContent,
|
||||||
|
'certificateChain' => $sslCertificateChainFilePath,
|
||||||
|
'certificateChainContent' => $sslCertificateChainFileContent
|
||||||
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$websiteSslCertificate = new DomainSslCertificate();
|
return false;
|
||||||
$websiteSslCertificate->domain = '*.' . $masterDomain->domain;
|
|
||||||
$websiteSslCertificate->certificate = $validateCertificates['certificate'];
|
|
||||||
$websiteSslCertificate->private_key = $validateCertificates['private_key'];
|
|
||||||
$websiteSslCertificate->certificate_chain = $validateCertificates['certificate_chain'];
|
|
||||||
$websiteSslCertificate->customer_id = 0;
|
|
||||||
$websiteSslCertificate->is_active = 1;
|
|
||||||
$websiteSslCertificate->is_wildcard = 1;
|
|
||||||
$websiteSslCertificate->is_auto_renew = 1;
|
|
||||||
$websiteSslCertificate->provider = 'letsencrypt';
|
|
||||||
$websiteSslCertificate->save();
|
|
||||||
|
|
||||||
$mds = new MasterDomain();
|
}
|
||||||
$mds->configureVirtualHost();
|
|
||||||
|
|
||||||
ApacheBuild::dispatchSync();
|
public function installCertificates()
|
||||||
|
{
|
||||||
|
$masterDomain = new MasterDomain();
|
||||||
|
$masterDomain->domain = setting('general.wildcard_domain');
|
||||||
|
|
||||||
return [
|
$checkCertificateFilesExist = $this->checkCertificateFilesExist($masterDomain->domain);
|
||||||
'success' => 'SSL certificate installed successfully.'
|
if (isset($checkCertificateFilesExist['sslFiles']['certificateContent'])) {
|
||||||
];
|
|
||||||
|
$findWildcardSsl = DomainSslCertificate::where('domain', '*.'.$masterDomain->domain)->first();
|
||||||
|
if (!$findWildcardSsl) {
|
||||||
|
$findWildcardSsl = new DomainSslCertificate();
|
||||||
|
$findWildcardSsl->domain = '*.'.$masterDomain->domain;
|
||||||
|
$findWildcardSsl->customer_id = 0;
|
||||||
|
$findWildcardSsl->is_active = 1;
|
||||||
|
$findWildcardSsl->is_wildcard = 1;
|
||||||
|
$findWildcardSsl->is_auto_renew = 1;
|
||||||
|
$findWildcardSsl->provider = 'letsencrypt';
|
||||||
|
}
|
||||||
|
|
||||||
|
$findWildcardSsl->certificate = $checkCertificateFilesExist['sslFiles']['certificateContent'];
|
||||||
|
$findWildcardSsl->private_key = $checkCertificateFilesExist['sslFiles']['privateKeyContent'];
|
||||||
|
$findWildcardSsl->certificate_chain = $checkCertificateFilesExist['sslFiles']['certificateChainContent'];
|
||||||
|
$findWildcardSsl->save();
|
||||||
|
|
||||||
|
|
||||||
|
$mds = new MasterDomain();
|
||||||
|
$mds->configureVirtualHost();
|
||||||
|
|
||||||
|
ApacheBuild::dispatchSync();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'error' => 'Domain SSL certificate updated.'
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// if (file_exists($this->installLogFilePath)) {
|
||||||
|
// unlink($this->installLogFilePath);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $acmeConfigYaml = view('letsencrypt::actions.acme-config-wildcard-yaml', [
|
||||||
|
// 'domain' => $masterDomain->domain,
|
||||||
|
// 'domainRoot' => $masterDomain->domainRoot,
|
||||||
|
// 'domainPublic' => $masterDomain->domainPublic,
|
||||||
|
// 'email' => $masterDomain->email,
|
||||||
|
// 'country' => $masterDomain->country,
|
||||||
|
// 'locality' => $masterDomain->locality,
|
||||||
|
// 'organization' => $masterDomain->organization
|
||||||
|
// ])->render();
|
||||||
|
//
|
||||||
|
// $acmeConfigYaml = preg_replace('~(*ANY)\A\s*\R|\s*(?!\r\n)\s$~mu', '', $acmeConfigYaml);
|
||||||
|
//
|
||||||
|
// file_put_contents($masterDomain->domainRoot.'/acme-wildcard-config.yaml', $acmeConfigYaml);
|
||||||
|
//
|
||||||
|
// $amePHPPharFile = base_path().'/Modules/LetsEncrypt/Actions/acmephp.phar';
|
||||||
|
//
|
||||||
|
// if (!is_dir(dirname($this->installLogFilePath))) {
|
||||||
|
// shell_exec('mkdir -p ' . dirname($this->installLogFilePath));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //$phyrePHP = ApiClient::getPhyrePHP();
|
||||||
|
// $phyrePHP = 'phyre-php';
|
||||||
|
// $command = $phyrePHP.' '.$amePHPPharFile.' run '.$masterDomain->domainRoot.'/acme-wildcard-config.yaml >> ' . $this->installLogFilePath . ' &';
|
||||||
|
// shell_exec($command);
|
||||||
|
//
|
||||||
|
// $validateCertificates = [];
|
||||||
|
//
|
||||||
|
// if (! file_exists($sslCertificateFilePath)
|
||||||
|
// || ! file_exists($sslCertificateKeyFilePath)
|
||||||
|
// || ! file_exists($sslCertificateChainFilePath)) {
|
||||||
|
// // Cant get all certificates
|
||||||
|
// return [
|
||||||
|
// 'error' => 'Cant get all certificates.'
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// if (! empty($sslCertificateChainFileContent)) {
|
||||||
|
// $validateCertificates['certificate'] = $sslCertificateFileContent;
|
||||||
|
// }
|
||||||
|
// if (! empty($sslCertificateKeyFileContent)) {
|
||||||
|
// $validateCertificates['private_key'] = $sslCertificateKeyFileContent;
|
||||||
|
// }
|
||||||
|
// if (! empty($sslCertificateChainFileContent)) {
|
||||||
|
// $validateCertificates['certificate_chain'] = $sslCertificateChainFileContent;
|
||||||
|
// }
|
||||||
|
// if (count($validateCertificates) !== 3) {
|
||||||
|
// // Cant get all certificates
|
||||||
|
// return [
|
||||||
|
// 'error' => 'Cant get all certificates.'
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $websiteSslCertificate = new DomainSslCertificate();
|
||||||
|
// $websiteSslCertificate->domain = '*.' . $masterDomain->domain;
|
||||||
|
// $websiteSslCertificate->certificate = $validateCertificates['certificate'];
|
||||||
|
// $websiteSslCertificate->private_key = $validateCertificates['private_key'];
|
||||||
|
// $websiteSslCertificate->certificate_chain = $validateCertificates['certificate_chain'];
|
||||||
|
// $websiteSslCertificate->customer_id = 0;
|
||||||
|
// $websiteSslCertificate->is_active = 1;
|
||||||
|
// $websiteSslCertificate->is_wildcard = 1;
|
||||||
|
// $websiteSslCertificate->is_auto_renew = 1;
|
||||||
|
// $websiteSslCertificate->provider = 'letsencrypt';
|
||||||
|
// $websiteSslCertificate->save();
|
||||||
|
//
|
||||||
|
// $mds = new MasterDomain();
|
||||||
|
// $mds->configureVirtualHost();
|
||||||
|
//
|
||||||
|
// ApacheBuild::dispatchSync();
|
||||||
|
//
|
||||||
|
// return [
|
||||||
|
// 'success' => 'SSL certificate installed successfully.'
|
||||||
|
// ];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getInstallLog()
|
public function getInstallLog()
|
||||||
|
|
Loading…
Reference in a new issue