Установка подстановочного знака goDaddy ssl для нескольких серверов в nginx - PullRequest
0 голосов
/ 17 марта 2020

Я сгенерировал ssl-сертификат для типа сервера apache из csr с общим именем *.example.com.

На моей машине с Ubuntu aws ec2 у меня работает два приложения: vuejs веб-приложение на пост 8000 и express сервер остальных API на порту 3000.

Я хочу настроить nginx так, чтобы он перенаправлял domain.com на веб-приложение и api.domain.com на api.

В моей консоли goDaddy я добавил два имени: 1) @ для веба и 2) для api . Так как web и api работают на одной машине, я связал один и тот же ip для них обоих.

На данный момент, без установки ssl, я могу добиться этого с помощью следующей конфигурации -

server {
    listen 80;
    server_name example.com;

    large_client_header_buffers 4 32k;

    gzip on;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 80;
    server_name api.example.com;

    large_client_header_buffers 4 32k;

    gzip on;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Затем я устанавливаю сертификаты, поэтому я объединяю crt и промежуточный пакет и помещаю их в папку / etc / nginx / ssl и следующие строки на оба сервера в nginx .conf

    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/example.com.chained.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

Теперь я могу получить безопасный доступ к своей сети в https://example.com, но https://api.example.com выдает ошибки NET :: ERR_CERT_COMMON_NAME_INVALID

Что я делаю не так?

...