У меня есть веб-приложение, которое поддерживает несколько поддоменов, но я не могу найти правильную настройку nginx, чтобы сертификаты работали.
Я уже создал сертификаты certbot с этой командой
sudo certbot --server https://acme-v02.api.letsencrypt.org/directory -d * .example.com --manual --preferred-issues dns-01 certonly
Затем я скопировал файлы fullchain.pem и privkey.pem в каталог / etc / nginx / ssl / namesite-wildcard.
Это мой файл конфигурации nginx, который находится в каталоге сайтов:
server {
server_name nameSite.com www.nameSite.com; //Main domain settings, not related to my problem
location / {
proxy_pass http://localhost:42069;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /api {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/nameSite.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/nameSite.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server{
listen 443 ssl; //THIS is the tricky section
server_name *.nameSite.com;
location / {
proxy_pass http://localhost:42069;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
ssl_certificate /etc/nginx/ssl/nameSite-wildcard/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/nameSite-wildcard/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host ~ ^[^.]+\.nameSite\.com$) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = www.nameSite.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = nameSite.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80; server_name nameSite.com www.nameSite.com;
return 404; # managed by Certbot
}
Я должен отметить, что основной домен был автоматически сертифицирован с помощью команды:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
.
Итак, в конце, когда я пытаюсь перейти к www.nameSite.com или nameSite.com все сертифицировано, но всякий раз, когда я пробую любой * .nameSite.com, браузер сообщает мне, что соединение не зашифровано.
Спасибо за вашу помощь.