【发布时间】:2018-09-09 11:46:25
【问题描述】:
我正在使用docker stack 在多个数字海洋水滴(副本> 1)中部署一项服务,每个水滴一个容器。这是我的应用后端服务。
我想安装 SSL 证书和私钥(并希望自动更新),这样我就可以使用带有 SSL 终止设置的 TLS 连接,因此从 swarm LB 到容器的数据传输是使用端口 80 未加密的。我也使用 @ 987654323@ cmd 设置我的数字海洋 ubuntu v16.04 液滴。
最好的方法是什么?
我尝试了以下,出现了两个问题:
我首先生成证书和私钥,让我们在安装了 nginx 的服务器上的其他地方进行加密(也弄乱了我的 DNS)。生成证书/密钥后,我使用
docker swarm ca --rotate复制并安装它们。但是感觉这种做法是错误的。-
使用 1. 设置,我尝试了
curl后端服务。 80端口没问题,但是443端口好像在说http协议,我看到如下:$ curl -vvv https://myurl.com:443/v1/check * Trying my.ip.address... * Connected to myurl.com (my.ip.address) port 443 (#0) * found 148 certificates in /etc/ssl/certs/ca-certificates.crt * found 593 certificates in /etc/ssl/certs * ALPN, offering http/1.1 * gnutls_handshake() failed: An unexpected TLS packet was received. * Closing connection 0 curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received. $ curl -vvv http://myurl.com:443/v1/check * Trying my.ip.address... * Connected to myurl.com (my.ip.address) port 443 (#0) > GET /v1/check HTTP/1.1 > Host: myurl.com:443 > User-Agent: curl/7.47.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.10.3 (Ubuntu) < Date: Sun, 09 Sep 2018 11:06:39 GMT < Content-Type: application/json; charset=utf-8 < Transfer-Encoding: chunked < Connection: keep-alive < Vary: Accept-Encoding, Origin < ETag: W/"843adc298b0b2ef417eabf2f82670fc9" < Cache-Control: max-age=0, private, must-revalidate < X-Request-Id: b201d205-4c63-4318-b965-cebabc056b29 < X-Runtime: 0.078911 < X-Rack-Cache: pass < * Connection #0 to host myurl.com left intact {"status":"ok","container_id":"8bd9981213e7"}
感谢您对这个主题的了解!
我也在这里问过这个问题:
https://forums.docker.com/t/installing-ssl-cert-in-docker-swarm/58073
【问题讨论】:
标签: docker ssl docker-swarm