Я действительно в своем уме! Во-первых, похоже, что нет способа сделать LetsEncrypt процесс проверки без активации домена! (что отстой, когда вы пытаетесь перейти с одного сервера на другой)
Тогда я не могу понять acme-проблема вещи для работы. Вот моя конфигурация для хоста доменов в nginx:
server {
listen xxx.xxx.xxx.xxx:80;
server_name test.co.uk www.test.co.uk;
root /home/rachel/web/test.co.uk/public_html;
# Necessary for Let's Encrypt Domain Name ownership validation
location /.well-known/acme-challenge/ {
try_files $uri /dev/null =404;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen xxx.xxx.xxx.xxx;
server_name cdn.test.co.uk ;
root /home/rachel/web/cdn.test.co.uk/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/domains/cdn.test.co.uk.log combined;
access_log /var/log/nginx/domains/cdn.test.co.uk.bytes bytes;
error_log /var/log/nginx/domains/cdn.test.co.uk.error.log error;
# Necessary for Let's Encrypt Domain Name ownership validation
location /.well-known/acme-challenge/ {
try_files $uri /dev/null =404;
}
location / {
return 301 https://$host$request_uri;
}
}
Я сделал тестовый файл foo.html и поместил его в папку /.well-known/foo.html. Затем заходим в браузер:
http://test.co.uk/.well-known/foo.html
Я получаю ошибку 403. Что я делаю не так? Я не понимаю, почему это так сложно сделать!
Спасибо (надеюсь, вы сэкономите немного волос, которые у меня остались;))
Эх, мне действительно стоит начать с размещения своих вопросов здесь! Практически каждый раз после публикации я нахожу правильное решение!
Necessary for Let's Encrypt Domain Name ownership validation
location '/.well-known/acme-challenge' {
root /home/rachel/web/cdn.test.co.uk/public_html;
}
location / {
if ($scheme = http) {
return 301 https://cdn.test.co.uk$request_uri;
}
}
Надеюсь, это поможет кому-то другому!