首页 > 解决方案 > 使用letsencrypt将https重定向到http的https virtualhost apache代理后面的http nginx dockers

问题描述

我在 Debian VPS 中安装了 Apache 服务器,我用它作为 Nginx 容器的代理反向包含静态网站,我将容器的端口 80 映射到 3002 并且它运行良好,但是当我访问https://时出现问题www.example.com它将我重定向到http://www.example.com!我这样设置我的虚拟主机:

第一个 vHost (HTTP)

<VirtualHost *:80>
   ServerName example.com
   <Location />
     Order allow...
   </Location>
   ProxyRequests Off
   ProxyPreserveHost On
   #proxy to docker nginx -p 3002:80
   ProxyPass / http://localhost:3002
   ProxyPassReverse / http://localhost:3002

</VirtualHost>

第二个 vHost(由 Letencrypt Bot 创建的 HTTPS)

<VirtualHost *:443>
       ServerName example.com
       <Location />
         Order allow...
       </Location>
       ProxyRequests Off
       ProxyPreserveHost On
       #proxy to docker nginx -p 3002:80
       ProxyPass / http://localhost:3002
       ProxyPassReverse / http://localhost:3002
       #crt files..
       SSLCertificateFile /etc/letsen...
       SSLCertificateKeyFile /etc/letsen..
       Include /etc/letsencrypt/option...
</VirtualHost>

注意:docker 镜像是 kyma/docker-nginx

标签: apachedockernginxreverse-proxylets-encrypt

解决方案


您需要 www 的别名:

ServerName: example.com 
ServerAlias: www.example.com

推荐阅读