在2个网站之间实施SSL

时间:2018-06-28 10:53:21

标签: nginx

我需要在网站和API端点之间实现SSL。端点为example.com/api/v1/。两者都在运行Nginx。  网站地址为example2.com

阅读nginx文档,我需要配置客户端证书。

所以在API服务器上,我需要创建一个客户端证书

然后在Nginx配置中将以下内容添加到我的Web服务器(example2.com)配置中:-

location /upstream {
    proxy_pass https://example.com/api/v1/<endpoint>;
    proxy_ssl_certificate     /etc/nginx/client.pem;
    proxy_ssl_certificate_key /etc/nginx/client.key
}

然后在我添加的API服务器(example.com)上

location /api/v1/<endpoint>;
    ssl_certificate     /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/certs/server.key;
    ssl_client_certificate /etc/ssl/certs/ca.crt;
    ssl_verify_client      off;
    proxy_pass http://example2.com;

example2.com上已经有一个网站,因此我的Nginx配置中的位置部分。

然后我需要将生成的证书复制到Web服务器,并将它们安装在配置中指定的位置。

我明白这个意思了吗

更新

好的,所以我看起来我的第一个问题是您无法配置 ssl_verify_client在位置块中...所以我将不得不创建 像这样

server {
listen 443 ssl;

ssl_certificate /etc/nginx/ssl/public.crt;
ssl_certificate_key /etc/nginx/ssl/private.rsa;

ssl_client_certificate /etc/nginx/ssl/client_ca.pem;
ssl_verify_client on;

server_name api.my_domain.com;

location / {
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host;
   proxy_redirect off;
   proxy_pass http://app/api;
}
} 

0 个答案:

没有答案