如何使用自签名证书运行Docker容器

时间:2018-09-05 06:02:59

标签: docker nginx routing self-signed

我有一个正在运行的Docker容器(.net Web应用程序),它与 http://xx.xx.xx.xx:aaaa 完美配合。现在,我想对同一应用使用自签名证书,就像 https://xx.xx.xx.xx:aaaa 。为此,我尝试使用如下所示的 Nginx

通过向其安装certificatesconf来运行nginx容器,并向其添加docker bridge网络IPAM网关,如下所示。 用于运行nginx容器的命令是:

docker container run --name nginx_proxy -d -v密码:/etc/nginx/conf.d -p 443:443 nginx

conf文件类似于:

server {
  listen 443;
  ssl on;
  ssl_certificate /etc/nginx/conf.d/cert.pem;
  ssl_certificate_key /etc/nginx/conf.d/key.pem;
  location / {
     proxy_pass http://172.17.0.1:4000;
  }
}

然后适用于https://xx.xx.xx.xx的https。然后我尝试将其他正在运行的容器IP(如下所示)添加到配置文件中,

server {
  listen 443;
  ssl on;
  ssl_certificate /etc/nginx/conf.d/cert.pem;
  ssl_certificate_key /etc/nginx/conf.d/key.pem;
  location / {
     proxy_pass http://172.17.0.1:4000;
  }
}

server {
  listen 8888;
  ssl on;
  ssl_certificate /etc/nginx/conf.d/cert.pem;
  ssl_certificate_key /etc/nginx/conf.d/key.pem;
  location / {
     proxy_pass http://172.17.0.3:8888;
  }
}

但是没有用。我们可以用这种方式用nginx做到这一点吗,如果可以的话,这是什么问题,或者启动它时是否还有其他方法可以将自签名证书添加到Docker容器中。

希望您对此有所帮助。

1 个答案:

答案 0 :(得分:0)

尝试

listen 443 ssl;

.......