Atualmente tenho configuração
docker
comlinux ubuntu 18.04
No meu recipientereverent_ptolemy
contém o projeto da minha api.
No meu recipiente
A configuração de vhosts HTTP está ouvindo3021
A configuração de vhosts HTTPS está ouvindo1250
e no meu anfitrião
a porta 3021
está mapeada para a porta80
a porta 1250
está mapeada para a porta443
Na minha host
doca
Eu posso acessar minha API atravésHTTPS Curl
assim
curl https://<sub-domain>/api/login
Mas quando tentei acessar isso do navegador
isso me dá um erro assim
Obs:
Só http://<subdomain>/api/login
é acessível a partir do mundo exterior, não ohttps
Qual poderia ser a razão pela qual o HTTPS é acessível apenas no host e no contêiner, mas não acessível do mundo exterior?
Antes de tudo, verifique o iptables (se você permitir o tráfego https) ou adicione diretamente uma regra em tempo real (não estará disponível após a reinicialização ou a reinicialização do iptables - isso é apenas para teste):
iptables -I INPUT -p TCP --dport 443 -j ACCEPT
Em segundo lugar, você estava tentando usar o método GET para sua API quando provavelmente ele permite apenas o método POST.
Eu resolvi meu problema.
Primeiro, se você estiver tentando fazer SSL no seu docker. Certifique-se de que sua
443
porta seja encaminhada. Você pode verificar sua porta 443 se está aberta ou fechadaaqui: https://www.yougetsignal.com/tools/open-ports/