From 6844de8422ad2ffcd1f5c864ea967c8321ac07b7 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 22 Jan 2016 04:57:06 -0500
Subject: [PATCH] - don't delete .well-known dir if it existed prior to run

---
 server/plugins-available/apache2_plugin.inc.php |   13 ++++++++++---
 server/plugins-available/nginx_plugin.inc.php   |   13 ++++++++++---
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 4386a01..e12cb27 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1166,13 +1166,15 @@
 			$bundle_tmp_file = "/etc/letsencrypt/live/".$domain."/chain.pem";
 			$webroot = $data['new']['document_root']."/web";
 
+			$wk_dir_existed = false;
+			if(is_dir($webroot . '/.well-known')) $wk_dir_existed = true;
 			//* check if we have already a Let's Encrypt cert
 			if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 
-				if(is_dir($webroot . "/.well-known/")) {
+				if(is_dir($webroot . "/.well-known/acme-challenge/")) {
 					$app->log("Remove old challenge directory", LOGLEVEL_DEBUG);
-					$this->_exec("rm -rf " . $webroot . "/.well-known/");
+					$this->_exec("rm -rf " . $webroot . "/.well-known/acme-challenge/");
 				}
 
 				$app->log("Create challenge directory", LOGLEVEL_DEBUG);
@@ -1187,7 +1189,12 @@
 				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 --email postmaster@$domain --domains $lddomain --webroot-path " . escapeshellarg($webroot));
 				}
-			};
+			}
+			if($wk_dir_existed == false && is_dir($webroot . '/.well-known')) {
+				$this->_exec("rm -rf " . $webroot . "/.well-known");
+			} elseif(is_dir($webroot . "/.well-known/acme-challenge/")) {
+				$this->_exec("rm -rf " . $webroot . "/.well-known/acme-challenge/");
+			}
 
 			//* check is been correctly created
 			if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) {
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index a8ecc74..5ffe771 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1286,13 +1286,15 @@
 			$key_tmp_file = "/etc/letsencrypt/live/".$domain."/privkey.pem";
 			$webroot = $data['new']['document_root']."/web";
 
+			$wk_dir_existed = false;
+			if(is_dir($webroot . '/.well-known')) $wk_dir_existed = true;
 			//* check if we have already a Let's Encrypt cert
 			if(!file_exists($crt_tmp_file) && !file_exists($key_tmp_file)) {
 				$app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG);
 
-				if(is_dir($webroot . "/.well-known/")) {
+				if(is_dir($webroot . "/.well-known/acme-challenge/")) {
 					$app->log("Remove old challenge directory", LOGLEVEL_DEBUG);
-					$this->_exec("rm -rf " . $webroot . "/.well-known/");
+					$this->_exec("rm -rf " . $webroot . "/.well-known/acme-challenge/");
 				}
 
 				$app->log("Create challenge directory", LOGLEVEL_DEBUG);
@@ -1307,7 +1309,12 @@
 				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 --email postmaster@$domain --domains $lddomain --webroot-path " . escapeshellarg($webroot));
 				}
-			};
+			}
+			if($wk_dir_existed == false && is_dir($webroot . '/.well-known')) {
+				$this->_exec("rm -rf " . $webroot . "/.well-known");
+			} elseif(is_dir($webroot . "/.well-known/acme-challenge/")) {
+				$this->_exec("rm -rf " . $webroot . "/.well-known/acme-challenge/");
+			}
 
 			//* check is been correctly created
 			if(file_exists($crt_tmp_file) OR file_exists($key_tmp_file)) {

--
Gitblit v1.9.1