http 有效,但 https 不适用于 docker

http works but https is not working with docker

我正在尝试通过 docker 容器在 angular 中托管我的应用程序。它在 http 上工作正常,但在 https 上不工作。

1. Created a signed ssl certificate in wsl and generated the .key and .crt files

2. Added the below code to docker file in the application
# Set the working directory
WORKDIR /app

# Add the source code to app
COPY ./ /app/

# Install all the dependencies
RUN npm install

ARG configuration=prod

RUN npm run build:$configuration

FROM httpd:2.4

COPY --from=build-step /app/dist/<appname>/ /usr/local/apache2/htdocs/

3. Created an image using the command: docker build --build-arg configuration=dev . -t <image name>

4. To run the web traffic over ssl used the command for mounting
docker run -p 8235:80 -p 443:443 -v /mnt/c/usr/name/Azure/certificate.crt:/usr/local/apache2/conf/server.crt -v /mnt/c/usr/name/Azure/certificate.key:/usr/local/apache2/conf/server.key <image name>

5. Uncommented the below lines in httpd.conf file present in /usr/local/apache2/conf/httpd.conf

#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf

6. Also added the line  ServerName localhost   in httpd.conf

当尝试使用 http://localhost:8235/ 浏览时它工作正常但当使用 https://localhost:8235/ 时它不起作用

日志显示以下结果:
[2 月 4 日星期五 10:59:21.854978 2022] [ssl:warn] [pid 1:tid ##########] AH01906:www.example.com:443:0 服务器证书是 CA 证书( BasicConstraints: CA == TRUE!?) [2 月 4 日星期五 10:59:21.855031 2022] [ssl:warn] [pid 1:tid ##########] AH01909:www.example.com:443:0 服务器证书不包含 ID与服务器名称匹配 [2 月 4 日星期五 10:59:21.856743 2022] [mpm_event:通知] [pid 1:tid ##########] AH00489: Apache/2.4.52 ( Unix) OpenSSL/1.1.1k 配置 -- 恢复正常操作 [2 月 4 日星期五 10:59:21.856787 2022] [核心:通知] [pid 1:tid ##########] AH00094:命令行:'httpd -D FOREGROUND'

Httpd 不会 运行 在同一端口上使用 http 和 https 协议。 看起来,它被配置为在端口 80 (http) 和端口 443 (https) 上运行。您将端口转发配置为

  • 8235 -> 80 (http)
  • 443 -> 443 (https)

因此您需要测试 URL

http://localhost:8235/
https://localhost:443/

根据您提供的证书,客户端可能会警告连接不安全。