Я сгенерировал 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
Что я делаю не так?