nginx: use /var/www/.well-known folder for ynh diagnosis and acme challenge, because /tmp/ could be manipulated by user to serve maliciously crafted files

This commit is contained in:
Alexandre Aubin 2023-06-09 22:30:32 +02:00
parent cec0dfe158
commit d42c99835a
4 changed files with 7 additions and 7 deletions

View file

@ -1,6 +1,6 @@
location ^~ '/.well-known/acme-challenge/' location ^~ '/.well-known/acme-challenge/'
{ {
default_type "text/plain"; default_type "text/plain";
alias /tmp/acme-challenge-public/; alias /var/www/.well-known/acme-challenge-public/;
gzip off; gzip off;
} }

View file

@ -13,7 +13,7 @@ server {
include /etc/nginx/conf.d/acme-challenge.conf.inc; include /etc/nginx/conf.d/acme-challenge.conf.inc;
location ^~ '/.well-known/ynh-diagnosis/' { location ^~ '/.well-known/ynh-diagnosis/' {
alias /tmp/.well-known/ynh-diagnosis/; alias /var/www/.well-known/ynh-diagnosis/;
} }
{% if mail_enabled == "True" %} {% if mail_enabled == "True" %}

View file

@ -41,8 +41,8 @@ from yunohost.log import OperationLogger
logger = getActionLogger("yunohost.certmanager") logger = getActionLogger("yunohost.certmanager")
CERT_FOLDER = "/etc/yunohost/certs/" CERT_FOLDER = "/etc/yunohost/certs/"
TMP_FOLDER = "/tmp/acme-challenge-private/" TMP_FOLDER = "/var/www/.well-known/acme-challenge-private/"
WEBROOT_FOLDER = "/tmp/acme-challenge-public/" WEBROOT_FOLDER = "/var/www/.well-known/acme-challenge-public/"
SELF_CA_FILE = "/etc/ssl/certs/ca-yunohost_crt.pem" SELF_CA_FILE = "/etc/ssl/certs/ca-yunohost_crt.pem"
ACCOUNT_KEY_FILE = "/etc/yunohost/letsencrypt_account.pem" ACCOUNT_KEY_FILE = "/etc/yunohost/letsencrypt_account.pem"

View file

@ -60,9 +60,9 @@ class MyDiagnoser(Diagnoser):
domains_to_check.append(domain) domains_to_check.append(domain)
self.nonce = "".join(random.choice("0123456789abcedf") for i in range(16)) self.nonce = "".join(random.choice("0123456789abcedf") for i in range(16))
rm("/tmp/.well-known/ynh-diagnosis/", recursive=True, force=True) rm("/var/www/.well-known/ynh-diagnosis/", recursive=True, force=True)
mkdir("/tmp/.well-known/ynh-diagnosis/", parents=True) mkdir("/var/www/.well-known/ynh-diagnosis/", parents=True)
os.system("touch /tmp/.well-known/ynh-diagnosis/%s" % self.nonce) os.system("touch /var/www/.well-known/ynh-diagnosis/%s" % self.nonce)
if not domains_to_check: if not domains_to_check:
return return