Я хочу установить простой веб-сервис для просмотра дерева каталогов файлов на внутреннем сервере и для соблюдения политики компании, для которой необходимо использовать TLS ("https://...").
Сначала я попробовал несколько образы, включая davralin / nginx -autoindex и смонтированный каталог, к которому я хочу предоставить доступ этой службе. Он работал как шарм, но не использовал соединение TLS.
Чтобы заставить что-то работать с TLS, я начал с нуля и создал свой собственный файл default.conf для nginx:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name localhost;
ssl_certificate /etc/ssl/certs/my-cert.crt;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
root /usr/share/nginx/html;
autoindex on;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Затем я создал следующий Dockerfile:
FROM nginx:stable-alpine
MAINTAINER lsiden at gmail.com
COPY default.conf /etc/nginx/conf.d
COPY my-cert.crt /etc/ssl/certs/
COPY server.key /etc/ssl/certs/
Затем я его собрал:
docker build -t lsiden/nginx-autoindex-tls .
Затем я запустил его:
docker run -dt -v /var/www/data/files:/usr/share/nginx/html:ro -p 3453:80 lsiden/nginx-autoindex-tls
Однако я не могу связаться с ним даже с хост-машины. Я пытался:
$ telnet localhost 3453
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Я пытался читать сообщения журнала:
docker logs <container-id>
Тишина.
Я уже подтвердил, что прокси docker прослушивает порт:
tcp6 0 0 :::3453 :::* LISTEN 14828/docker-proxy
Порт отображается на tcp6, но не "tcp" (ipv4), а I прочитайте здесь , что netstat покажет только соединение ipv6, даже если оно доступно на обоих. Чтобы быть уверенным, я проверил:
sudo sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0
Чтобы быть точным, я уже открыл этот порт в iptables, хотя iptables не может играть роль здесь, если я даже не могу добраться до него из того же машина через localhost.
Я надеюсь, что кто-то с хорошими настройками сети может сказать мне, где искать дальше. Я не могу понять, что я пропустил.