【发布时间】:2021-11-02 10:25:43
【问题描述】:
我创建了一个运行 apache2 http 服务器的容器,加载了我的证书,https://mydomain 可以工作,但是http://mydomain 也可以工作,如果我在浏览器上输入数字mydomain,浏览器会打开http://mydomain。有没有办法禁用http协议?我在启动容器时只使用-p 443:443。
这是我的 Dockerfile
ARG version=2.4.48-alpine
FROM httpd:$version
LABEL version=1.0
COPY ./public_html/ /usr/local/apache2/htdocs/
# run web traffic over SSL/HTTPS
COPY ./cert/srv.crt /usr/local/apache2/conf/
COPY ./cert/srv.key /usr/local/apache2/conf/
RUN ["sed", "-i", "-e", "'s/^#\(Include .*httpd-ssl.conf\)/\1/'", "-e", "'s/^#\(LoadModule .*mod_ssl.so\)/\1/'", "-e", "'s/^#\(LoadModule .*mod_socache_shmcb.so\)/\1/'", "conf/httpd.conf"]
EXPOSE 443/tcp
这是docker ps的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21678d6321e4 webserver "/bin/sh" 2 hours ago Up About an hour 80/tcp, 0.0.0.0:443->443/tcp webserver
【问题讨论】:
-
您好,您的容器是如何配置的?您可以通过放置示例代码进行编辑吗?所以我们可以提供更好的帮助
-
可以添加
docker ps命令的输出吗?如果可能的话,还有你的 dockerfile 或 docker-compoe 文件 -
@NoamYizraeli 完成
-
@HenriqueMauri 完成
-
它似乎是 httpd 图像的 known issue,但实际上仍然不应该公开发布它...如果您停止容器,
http://mydomain和https://mydomain仍然可用?