Назад | Перейти на главную страницу

Nginx настраивает поддомен на https, ошибка конфиденциальности

У меня есть домен ambroise-rabier.fr и хотел бы добавить домен analytics.ambroise-rabier.fr, также в https.

На хроме я получаю ошибка конфиденциальности, если я не дублирую ambroise-rabier.fr значение в каждом ключе server_name. Но потом nginx жалуется с участием conflicting server name "ambroise-rabier.fr".

Вот конфиг:

server {
        listen 80;
        listen [::]:80;
        server_name ambroise-rabier.fr www.ambroise-rabier.fr analytics.ambroise-rabier.fr;

        location ~ /.well-known/acme-challenge {
          allow all;
          root /var/www/html;
        }

        location / {
                rewrite ^ https://$host$request_uri? permanent;
        }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name ambroise-rabier.fr www.ambroise-rabier.fr;

    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/ambroise-rabier.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ambroise-rabier.fr/privkey.pem;

    ssl_buffer_size 8k;

    ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_prefer_server_ciphers on;

    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

    ssl_ecdh_curve secp384r1;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8;


    location / {
        # ...
    }

    root /var/www/html/blog-front/dist/blog-front;
    index index.html index.htm index.nginx-debian.html;
}

# See also https://www.digitalocean.com/community/tutorials/how-to-secure-a-containerized-node-js-application-with-nginx-let-s-encrypt-and-docker-compose
# Se also https://github.com/matomo-org/matomo-nginx/blob/master/sites-available/matomo.conf
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name ambroise-rabier.fr analytics.ambroise-rabier.fr;

    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/ambroise-rabier.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ambroise-rabier.fr/privkey.pem;

    ssl_buffer_size 8k;

    ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;

    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_prefer_server_ciphers on;

    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

    ssl_ecdh_curve secp384r1;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8;

    root /var/www/html/matomo;

    index index.php;

    # make sure outgoing links don't show the URL to the Matomo instance
    add_header Referrer-Policy origin; 

    location / {
        # ...
    }

}
# vim: filetype=nginx

Опять же, если я удалю ambroise-rabier.fr из server_name ambroise-rabier.fr analytics.ambroise-rabier.fr;, конфигурация nginx не выдает никаких предупреждений. Но я получаю ошибка конфиденциальности в Chrome (что хуже). С моим текущим обходным путем я подозреваю, что некоторые ресурсы могут плохо загружаться на analytics.ambroise-rabier.fr из-за повторяющегося имени_сервера. И также должен быть правильный способ добиться этого.

Я использую докер и сертификат Let's Encrypt (следовал руководству по цифровому океану), я использую эту команду: certonly --webroot --webroot-path=/var/www/html --email my.email@host.fr --agree-tos --no-eff-email --force-renewal -d ambroise-rabier.fr -d www.ambroise-rabier.fr -d analytics.ambroise-rabier.fr .

Вывод этой команды:

ambroise@vps318592:~/node_project$ docker-compose up certbot
db is up-to-date
nodejs is up-to-date
webserver is up-to-date
Recreating certbot ... done
Attaching to certbot
certbot      | Saving debug log to /var/log/letsencrypt/letsencrypt.log
certbot      | Plugins selected: Authenticator webroot, Installer None
certbot      | Renewing an existing certificate
certbot      | IMPORTANT NOTES:
certbot      |  - Congratulations! Your certificate and chain have been saved at:
certbot      |    /etc/letsencrypt/live/ambroise-rabier.fr/fullchain.pem
certbot      |    Your key file has been saved at:
certbot      |    /etc/letsencrypt/live/ambroise-rabier.fr/privkey.pem
certbot      |    Your cert will expire on 2019-09-19. To obtain a new or tweaked
certbot      |    version of this certificate in the future, simply run certbot
certbot      |    again. To non-interactively renew *all* of your certificates, run
certbot      |    "certbot renew"
certbot      |  - If you like Certbot, please consider supporting our work by:
certbot      |
certbot      |    Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
certbot      |    Donating to EFF:                    https://eff.org/donate-le
certbot      |
certbot exited with code 0

Похоже на проблему с сертификатом SSL. Можете ли вы проверить SAN в своем сертификате, analytics.ambroise-rabier.fr здесь? попробуйте добавить опцию --expand при создании сертификата.

--expand указывает Certbot обновить существующий сертификат новым сертификатом, который содержит все старые домены и один или несколько дополнительных новых доменов. С параметром --expand используйте параметр -d, чтобы указать все существующие домены и один или несколько новых доменов.

источник: https://certbot.eff.org/docs/using.html#re-creating-and-updating-existing-certificates