docker - ssl 证书或 nginx 代理服务器不工作

标签 docker ssl nginx https nginx-reverse-proxy

我已经创建了域 (domain.com) 和子域 (abc.domain.com),并且还使用 letsencrypt 为两者生成了 SSL 证书。这两个 Django 项目都托管在 AWS EC2 上,并为它们创建了代理服务器,如下所示:

server {
    listen      443 ssl;
    server_name example.com;

    location / {
        proxy_pass https://1.2.3.4:444;
        proxy_ssl_server_name       on;
        proxy_ssl_verify            on;
        proxy_ssl_certificate      /home/domain/fullchain.pem;
        proxy_ssl_certificate_key  /home/domain/privkey.pem;
    }
}


server {
    listen      443 ssl;
    server_name abc.example.com;

    location / {
        proxy_pass https://1.2.3.4:445;
        proxy_ssl_server_name       on;
        proxy_ssl_verify            on;
        proxy_ssl_certificate      /home/subdomain/fullchain.pem;
        proxy_ssl_certificate_key  /home/subdomain/privkey.pem;
    }
}

我对代理服务器和两个项目进行了分析,开始时没有出现任何问题,问题是当我在浏览器上输入 https://example.com 时,它没有显示页面,但是当我用端口号拉域时。 https://example.com:444,它开始显示页面。我不知道我错过了什么。

最佳答案

为了使 https://example.com 正常工作,您需要使用 SSL 配置正确配置 Nginx,其中包括使用 ssl_certificatessl_certificate_key 指令,因为您似乎没有使用它们。

使用 proxy_ssl_certificate 是为了在 Nginx 和代理服务器之间使用 HTTPS 连接,在您的例子中是 django 应用程序。

使用 ssl_certificate 是为了在用户的浏览器和 Nginx 之间使用 HTTPS 连接,您需要使 https://example.com 按预期工作

更多详情请查看configuring HTTPS servers

关于docker - ssl 证书或 nginx 代理服务器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55016830/

相关文章:

docker - 为什么 gke 上的 nginx 入口 Controller 仅针对我构建的 docker 镜像发送 503 响应?

nginx 提供文件但不是动态目录中的所有文件

web - 如何根据子请求设置变量值

docker - 在 Docker 中运行 Chromium - Gtk : cannot open display: :0

linux - 安装支持 openssl 的 hydra

python - Docker 在构建时链接到现有容器或镜像

java - 使用 CA 证书是否足以与 SSLServerSocket 进行安全通信?

openssl - Fedora 客户端使用 "Alert (Level: Fatal, Description: Unknown CA)"断开与 SSL 服务器的连接

docker 守护进程执行 : "dockerd" : executable not found in %PATH%

docker - 为多机执行对等链码查询时,无法获取 mycc :1. 0 的链码容器信息