diff --git a/inc/webadmin-letsencrypt.php b/inc/webadmin-letsencrypt.php
index ff85b37..598eb01 100644
--- a/inc/webadmin-letsencrypt.php
+++ b/inc/webadmin-letsencrypt.php
@@ -106,24 +106,53 @@ if (isset($_POST['submit'])) {
}
// check DNS
- $valid_domains = $letsencrypt->checkDNSValidity($checked_domains);
- $failed_domains = array_diff($checked_domains, $valid_domains);
+ $valid_domains = $letsencrypt->checkDNSValidity($_SESSION['letsencrypt-domains']);
+
+ $failed_domains = array_diff($_SESSION['letsencrypt-domains'], $valid_domains);
if (!empty($failed_domains)) {
- $errorMessage = "Erreur : La vérification DNS a échoué pour les domaines ci-dessous.
- Merci de vérifier les enregistrements de type A et AAAA.";
+ $errorMessage = "Erreur : La vérification DNS a échoué.
+ Merci de vérifier les enregistrements de type A et AAAA pour les domaine(s) suivant(s) :";
+ break;
+ }
+
+ // make csr
+ $isCsrGenerated = $letsencrypt->makeCsr($params[1], $_SESSION['letsencrypt-domains']);
+
+ if (!$isCsrGenerated) {
+ $errorMessage = "Erreur : La génération de demande de certificat a échoué.
+ Merci de contacter un administrateur pour continuer.";
+ break;
+ }
+
+ // evoacme TEST
+ $testGenerateCert = $letsencrypt->generateSSLCertificate($params[1]);
+
+ if (!$testGenerateCert) {
+ $errorMessage = "Erreur : La génération de certificat en mode TEST a échoué.
+ Merci de contacter un administrateur pour continuer.";
+ break;
+ }
+
+ // evoacme
+ // $generateCert = $letsencrypt->generateSSLCertificate($params[1], false);
+ $generateCert = $letsencrypt->generateSSLCertificate($params[1]);
+
+ if (!$generateCert) {
+ $errorMessage = "Erreur : La génération de certificat a échoué.
+ Merci de contacter un administrateur pour continuer.";
+ break;
+ }
+
+ $updatedVhostConfig = $letsencrypt->setSSLPortVhost($params[1]);
+
+ if (!$updatedVhostConfig) {
+ $errorMessage = "Erreur : La modification de la configuration de l'hôte virtuel a échoué.
+ Merci de contacter un administrateur pour continuer.";
break;
}
break;
}
-
- // make csr
- $isCsrGenerated = $letsencrypt->makeCsr($params[1], $_SESSION['letsencrypt-domains']);
-
- // evoacme TEST ou DRY RUN
- // evoacme
- // modifier configuration vhosts
- // reload service web
}
include_once EVOADMIN_BASE . '../tpl/webadmin-letsencrypt.tpl.php';
diff --git a/lib/letsencrypt.php b/lib/letsencrypt.php
index 8040441..82e11b4 100644
--- a/lib/letsencrypt.php
+++ b/lib/letsencrypt.php
@@ -38,7 +38,44 @@ class LetsEncrypt
$domains = implode(' ', $domains);
$cmd = 'web-add.sh generate-csr ' . $vhost . ' ' . "$domains";
- sudoexec($cmd ,$data_output, $exec_return);
+ sudoexec($cmd, $data_output, $exec_return);
+
+ if ($exec_return == 0) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Generate a SSL certificate
+ * @param string $vhost
+ * @param boolean $test generate in TEST mode or not
+ * @return boolean
+ */
+ public function generateSSLCertificate($vhost, $test = true)
+ {
+ $cmd = 'web-add.sh generate-ssl-certificate ' . $vhost . ' ' . ($test ? "true" : "false");
+
+ sudoexec($cmd, $data_output, $exec_return);
+
+ if ($exec_return == 0) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * add the 443 port to the vhost configuration
+ * @param string $vhost
+ * @return boolean
+ */
+ public function setSSLPortVhost($vhost)
+ {
+ $cmd = 'web-add.sh update-ssl-vhost-configuration ' . $vhost;
+
+ sudoexec($cmd, $data_output, $exec_return);
if ($exec_return == 0) {
return true;