提问人:Kacper P 提问时间:11/11/2023 更新时间:11/11/2023 访问量:35
在 Docker 中启用 Prestashop SSL 以进行本地开发
Enabling Prestashop SSL in Docker for local development
问:
我现在正在处理一个项目,我需要使用 docker 在我的计算机上本地创建一个 prestashop 站点,但我无法启用 ssl,并且不断收到ERR_SSL_PROTOCOL_ERROR错误。
到目前为止,我已经编写了这样的文件: docker-compose:
version: '3'
services:
prestashop:
build: .
container_name: prestashop
ports:
- 8080:80
- 4343:443
volumes:
- /home/puda/BE/src:/var/www/html
environment:
- DB_SERVER=mysql
- DB_USER=root
- DB_PASSWD=admin
- DB_NAME=prestashop
- PS_ENABLE_SSL=1
- PS_SSL_ENABLED=true
networks:
- prestashop-net
mysql:
image: mysql:5.7
container_name: mysqlPresta
volumes:
- /home/puda/BE/sql:/var/lib/mysql
environment:
- PS_INSTALL_AUTO=0
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_DATABASE=prestashop
ports:
- 3306:3306
networks:
- prestashop-net
networks:
prestashop-net:
Docker文件:
FROM prestashop/prestashop:1.7.8
ENV PS_VERSION 1.7.8
ENV PS_ENABLE_SSL 1
ENV PS_SSL_ENABLED true
COPY ssl.crt /../../../etc/apache2/ssl/ssl.crt
COPY ssl.key /../../../etc/apache2/ssl/ssl.key
COPY default-ssl.conf /../../../etc/apache2/sites-available/default-ssl.conf
RUN mkdir -p /var/run/apache2/
RUN ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
RUN if [ -x "$(command -v apache2-foreground)" ]; then a2enmod ssl;fi
EXPOSE 443
default-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
我不知道代码有多正确,但这就是我所拥有的。我检查了所有文件都在 docker 容器中,密钥和证书是正确的,因为我也检查了。我不知道我能做些什么来让网站支持 ssl。
当我在prestashop网站安装过程中检查启用ssl选项时,我根本无法访问该网站。当我在安装过程中不选中此选项时,我可以访问该站点,但是在管理面板中,我也无法启用 ssl,因为我收到错误ERR_SSL_PROTOCOL_ERROR。我尝试禁用防火墙并清除 cookie,但它也不起作用。在不同的浏览器上相同,但在 FireFox 上,SSL_ERROR_RX_RECORD_TOO_LONG错误弹出一次
答: 暂无答案
评论