【问题标题】:How do I make an SSL-secured reverse proxy on Nginx with Let's Encrypt?如何使用 Let's Encrypt 在 Nginx 上创建受 SSL 保护的反向代理?
【发布时间】:2016-06-16 00:20:02
【问题描述】:


我有一个适用于 Node.js 的 RestAPI,它通过 Nginx 代理,配置如下(私有部分已被隐藏):

   server {

    listen 80;
    server_name mywebsitestuff.com www.mywebsitestuff.com;

    location / {
        proxy_pass http://serverip:25000;
        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;
    }
}

我希望此 API 与 Let's Encrypt SSL 证书一起使用,我该怎么做?
谢谢

【问题讨论】:

    标签: node.js ssl nginx proxy


    【解决方案1】:

    1.使用 Let's encrypt 为您的域 mywebsitestuff.com www.mywebsitestuff.com 签署证书

    链接:Getting Started - Let's Encrypt

    2. 像这样配置服务器块

    listen 443;
    server_name   mywebsitestuff.com;
    
    ssl on;
    ssl_certificate     /etc/letsencrypt/live/mywebsitestuff.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mywebsitestuff.com/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    

    您可能需要为您的域签署两个证书,包括 www 和 w/o,然后将它们配置在两个单独的服务器块中,因为它们使用两个不同的证书。

    更新:

    看起来 Let's Encrypt 将访问/.well-known/acme-challenge/ 进行域身份验证。

    添加位置以避免像这样反向代理此请求

    location /.well-known/acme-challenge/ {
        root /some/path/;
    }
    

    然后你可以继续使用类似命令的 webroot 插件

    ./path/to/certbot-auto certonly --webroot -w /some/path -d mywebsitestuff.com -d www.mywebsitestuff.com

    确保/some/path存在并且你可以写而nginx可以读。

    【讨论】:

    • 嘿,谢谢!当我必须创建证书时,我必须为 webroot 插件指定一个位置,我应该输入什么?
    • 我的意思是使用反向代理。我知道,对于一个普通的网站,我会放置网站的目录。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2017-06-15
    • 2020-06-06
    相关资源
    最近更新 更多