我已经创建了一个运行apache2 http服务器的容器,加载了我的证书和https://mydomain
工作,但是http://mydomain
也工作,如果我在浏览器mydomain
上数字,浏览器打开http://mydomain
。是否有一种方法来禁用http协议?在启动容器时,我只使用-p 443:443
。
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
我解决了将http
重定向到https
的问题,也暴露了80
端口。