【问题标题】:Docker nginx connection refused (port 80 and 443) when using corporate signed certificate使用公司签名证书时,Docker nginx 连接被拒绝(端口 80 和 443)
【发布时间】:2021-01-13 03:26:03
【问题描述】:

我在 docker 环境中将 nginx 作为反向代理运行。 以下是用于创建实例的 Dockerfile。

FROM nginx:1.18.0

ENV https_proxy=http://someproxy.nt.gov.au:8080
ENV http_proxy=http://someproxy.nt.gov.au:8080
RUN env

COPY nginx.conf /etc/nginx/nginx.conf
COPY server-chain.cert /etc/nginx/server.cert
COPY server-chain.key /etc/nginx/server.key
COPY /html /usr/share/nginx/html
RUN echo 'alias ll="ls -la"' >> ~/.bashrc
EXPOSE 80
EXPOSE 443

STOPSIGNAL SIGQUIT


CMD ["nginx", "-g", "daemon off;"]

以下是 nginx.conf 文件的 upstream 指令和 server {} 部分 - 其余为默认值

upstream cics-liberty {
      server some-app-server:3000 ;
      }

server {
    listen       80;
    listen       443 ssl;
    listen  [::]:80;
    server_name  localhost;
    ssl_certificate server.cert;
    ssl_certificate_key server.key;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /offtocics/ {
      proxy_pass http://cics-liberty ;
     }
    location /barcode/ {
      proxy_pass http://cics-liberty ;
     }
    location /birt_wlp_s1/ {
      proxy_pass http://cics-liberty ;
     }
    location /scope2/ {
      proxy_pass http://cics-liberty ;
     }
...
}

实例化服务器的docker命令是

docker run -it --name webserver -d -p 8047:80 -p 8046:443 webserver:0.1

我正在运行其中的 2 个实例,其中一个使用自签名证书。另一个有一个由我们公司 CA 签名的证书包。

使用自签名证书的服务器按预期运行。 使用公司 CA 签署的证书的服务器拒绝 http 和 https 端口上的连接。

两者的日志输出是相同的,除了服务器拒绝连接在访问日志中没有任何内容。看起来它甚至在到达网络服务器之前就被拒绝了。

docker 环境在其内部虚拟网络中没有任何防火墙

我已经使用自签名证书重建了失败的网络服务器,它按预期工作。

【问题讨论】:

  • 我看到您正在使用环境变量 http_proxyhttps_proxy。我不相信 nginx 支持这一点。 trac.nginx.org/nginx/ticket/1399
  • 有时 nginx 会在错误日志中打印有关 SSL 的错误。你检查过错误日志吗?
  • 首先检查 linux 机器上的 80、443 端口是否空闲。 fuser 80/tcpfuser 443/tcp。如果他们返回某事,那意味着这些端口很忙。

标签: docker nginx ssl


【解决方案1】:

这是我的配置错误。 我将证书包从 PCKS7 重新格式化为 PEM 格式,但是我没有解密相关的私钥。

一旦我安装了私钥的解密版本 - 一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多