Как получить сертификат на поддомен?

Есть сервер на Nginx. На сервере работает сайт с сертификатом от Let's Encrypt
Я установил phpMyAdmin и решил сделать его поддоменом, вот конфиг Nginx:
server {
	listen 80 http2;
	listen [::]:80 http2;
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
	
	root /usr/share/phpmyadmin/;
	index index.php;
	autoindex off;
	server_name phpmyadmin.site.ru www.phpmyadmin.site.ru;

	ssl_certificate /home/Webserver/site.ru/SSL/fullchain.pem;
	ssl_certificate_key /home/Webserver/site.ru/SSL/privkey.pem;
	ssl_trusted_certificate /home/Webserver/site.ru/SSL/chain.pem;

	location ^~ /.well-known/acme-challenge/ {
		default_type "text/plain";
		root /usr/share/phpmyadmin/;
	}

	location = /.well-known/acme-challenge/ {
		return 404;
	}

	location ~ /\.ht {
		deny all;
	}
	
	location / {
		try_files $uri $uri/ =404;
	}
	
	location ~ \.php$ {
		root /usr/share/phpmyadmin/;
		try_files $uri =404;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/run/php/php-fpm-site.ru.sock;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}

Конечно я создал в /usr/share/phpmyadmin каталог /.well-known/acme-challenge/ и направил DNS на поддомен и подождал час.
После чего, я пытаюсь расширить командой:
certbot certonly --dry-run --webroot -w /usr/share/phpmyadmin/ --expand -d phpmyadmin.site.ru -d www.phpmyadmin.site.ru

Но бот выдает ошибку:
Failed authorization procedure. phpmyadmin.site.ru (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://phpmyadmin.site.ru/.well-known/acme-challenge/f0VCqUCbl1UC23M92EwElY4OcICO5gV48bKjRIiZxqw: Error getting validation data, www.phpmyadmin.site.ru (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://www.phpmyadmin.site.ru/.well-known/acme-challenge/AoIxyKLTCL7gzbnH9s7qhaNMPUveA71kMWzZsIxCO3M: Error getting validation data


Судя по ошибки, он не может получить доступ, но я не понимаю почему?
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Прибейте на HTTP 2.0, оставив в блоке, отвечающем за 80 порт только локейшен для верификации LE и безусловный редирект на HTTPS:

server {
        listen 80;

        location /.well-known/acme-challenge {
                root /usr/share/phpmyadmin;
        }

        location / {
        rewrite ^/(.*) https://$host/$1;
        }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы