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/
根据您提供的证书,客户端可能会警告连接不安全。
我正在尝试通过 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/
根据您提供的证书,客户端可能会警告连接不安全。