В настоящее время я настроил
docker
с участием linux ubuntu 18.04
В моем контейнере reverent_ptolemy
содержит проект моего api.
На моем контейнере
Конфигурация HTTP vhosts прослушивает 3021
Конфигурация HTTPS vhosts прослушивает 1250
и на моем хосте
порт 3021
отображается на порт 80
порт 1250
отображается на порт 443
В моем host
докер
Я могу получить доступ к своему API через HTTPS Curl
как это
curl https://<sub-domain>/api/login
Но когда я попытался получить к нему доступ из браузера
это дает мне такую ошибку
PS:
Только http://<subdomain>/api/login
является доступный из внешнего мира не https
В чем может быть причина, по которой HTTPS доступен только на хосте и контейнере, но недоступен из внешнего мира?
Я решил свою проблему.
Во-первых, если вы пытаетесь использовать SSL на своем докере. Убедитесь, что ваш 443
порт переадресован. Вы можете проверить свой порт 443, открыт он или закрыт
Прежде всего проверьте iptables (если вы разрешаете трафик https) или напрямую добавьте правило на лету (не будет доступно после перезагрузки или перезапуска iptables - это просто для теста):
iptables -I INPUT -p TCP --dport 443 -j ACCEPT
Во-вторых, вы пытались использовать метод GET для своего API, хотя, скорее всего, он разрешает только метод POST.