我正在尝试为我的Prestashop实例设置一个Docker Compose设置,使用DockerHub中的派生prestashop/prestashop
图像并覆盖docker_run.sh
入口点脚本来安装和运行Certbot {{1插件,以获取Let的加密SSL证书。一切都运行良好 - 我可以使用Certbot获取证书,Certbot还会根据Certbot的插件建议将整个HTTP流量重定向到HTTPS,最后在PS设置中打开SSL并为每个网站启用SSL后,我得到了预期的结果我的商店实例SSL安全。耶!
从这一点开始出现困难 - 在证书安装(大约1-2小时)之后经过一些随机的,不确定的时间后,我会定期发现一些奇怪的行为 - 当刷新商店的URL切换到我的机器的IP时 - --apache
,然后是有关无效SSL证书X.X.X.X:80/index.php
的预期浏览器错误。众所周知,它们被赋予域名,而不是IP地址。
我一直在使用Prestashop网站上的所有可能配置调整此设置:关闭规范链接重定向,在301和302之间切换重定向(商店的URL始终正确并指向域名)。我知道它不应该带来任何影响,但这种奇怪的行为促使我逐字测试我能想到的一切。
你们有没有见过类似的东西? Qualys SSL证书考试正在通过“A”级,没有任何线索。
以下是相关的INVALID_SSL_CERTIFICATE
设置:
docker-compose.yml
我在这种情况下使用的env文件看起来像
version: '3.2'
services:
shop:
container_name: apiart-shop
env_file: ./env/${CONFIG}/shop.env
depends_on:
- db
image: "szymonlyszkowski/apiart-prestashop:${APIART_VERSION}"
ports:
- "80:80"
- "443:443"
environment:
DB_SERVER: db
volumes:
- /var/backups:/var/backups
- /etc/letsencrypt:/etc/letsencrypt
- /etc/prestashop/cookie:/etc/prestashop/cookie
db:
container_name: apiart-db
env_file: ./env/${CONFIG}/db.env
image: "mysql:5.7"
volumes:
- /var/backups:/var/backups
基于以下内容构建Docker镜像:
PS_FOLDER_ADMIN=admin974otxap1
PS_FOLDER_INSTALL=install334f2xls
ADMIN_MAIL=test@test.pl
ADMIN_PASSWD=test1234
PS_DOMAIN=some.domain.pl
PS_HANDLE_DYNAMIC_DOMAIN=1
DB_USER=apiart
DB_PASSWD=apiart
DB_NAME=apiart
PS_INSTALL_AUTO=1
PS_LANGUAGE=pl
PS_COUNTRY=pl
CONFIG=staging
最后但并非最不重要的是,覆盖了docker_run.sh文件:
FROM prestashop/prestashop:1.6-7.0
COPY scripts/docker_run.sh /tmp/_docker_run.sh
RUN chmod +x /tmp/*.sh
# Getting certbot - it will be installed during first run
RUN wget -q --directory-prefix=/root/ https://dl.eff.org/certbot-auto
RUN chmod a+x /root/certbot-auto
VOLUME /var/backups
ENTRYPOINT /tmp/_docker_run.sh