Я использую сервер Ubuntu 20.04 в Azure с Nginx, PHP-FPM и двумя веб-сайтами.
Это сайты example.com и sub.example.com, и они имеют сертификат, выданный certbot, и работают нормально.
Я добавил третий сайт с другим доменом example2.com, и он работал нормально. Но когда я добавляю certbot на этот третий сайт, они все перестают работать, а Nginx не останавливается и не показывает никаких ошибок.
Я добавил сертификаты, используя это
sudo certbot --Nginx -d example.com -d www.example.com
sudo certbot --nginx -d sub.example.com
До сих пор все в порядке, и сайты работают нормально последние пять месяцев.
Затем я добавляю новый веб-сайт, и два работают нормально, но когда я добавляю certbot, все они перестают работать, но nginx все еще работает без ошибок.
sudo certbot --nginx -d example2.com -d www.example2.com
проверка Nginx:
судо nginx-t
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: проверка файла конфигурации /etc/nginx/nginx.conf прошла успешно
Сайты снова работают только если я удалю сертификат с третьего сайта
sudo sudo certbot удалить --cert-name example2.com
Извините, я изо всех сил стараюсь использовать английский язык.
Серверный блок Сайт 1
сервер {
корень /var/www/example.com/html;
индекс index.php index.html index.htm index.nginx-debian.html;
имя_сервера example.com www.example.com;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
расположение ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
включить fastcgi_params;
}
слушать [::]:443 ssl ipv6only=on; # под управлением Certbot
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($host = www.example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
если ($host = example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80 default_server;
слушать [::]:80 default_server;
имя_сервера example.com www.example.com;
вернуть 404; # под управлением Certbot
}
Серверный блок Сайт 2 (субдомен сайта 1)
сервер {
корень /var/www/sub.example.com/html;
индекс index.php index.html index.htm index.nginx-debian.html;
имя_сервера sub.example.com;
место расположения / {
try_files $uri $uri/ /index.php?$args;
}
расположение ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
включить fastcgi_params;
}
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/sub.example.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/sub.example.com/privkey.pem; # под управлением Certbot
# включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($ host = sub.example.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80;
имя_сервера sub.example.com;
вернуть 404; # под управлением Certbot
}
Серверный блок Сайт 3
сервер {
корень /var/www/example2.com/html;
индекс index.php index.html index.htm index.nginx-debian.html;
имя_сервера example2.com www.example2.com;
место расположения / {
try_files $uri $uri/ =404;
}
расположение ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
включить fastcgi_params;
}
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($ хост = www.example2.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
если ($ хост = example2.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80;
имя_сервера example2.com www.example2.com
вернуть 404; # под управлением Certbot
}