【问题标题】:Docker change wordpress to HTTPS from HTTPDocker 将 wordpress 从 HTTP 更改为 HTTPS
【发布时间】:2020-11-18 06:04:08
【问题描述】:

我很难更改已设置容器的配置以使用 SSL。

我有带有 CentOs 8 的 VPS,在其上运行了 2 个容器,一个带有 Wordpress,另一个带有 wordpress DB。 Wordpress 在端口 80 上运行良好。我想启用 SSL 并将其移至 443。

现在我做了什么:

  1. 为 docker 可信接口打开防火墙端口 443;
  2. 将 wp-config.php 更改为 wp-home 和 wp-site url 以分别使用 https 协议;
  3. 在 wp-config.php 中添加 FORCE_SSL_ADMIN
  4. 在停止的容器中将 hostconfig.json 和 config.v2.json 分别使用 443 协议改为 80

编辑 1

目前的结果: 运行 curl localhost:443 时,我返回了 wordpress 页面(从本地机器到 wordpress),但我认为它不使用 https 协议。

期望的结果: 我希望能够通过 https 为外部流量提供 wordpress。现在我收到连接被拒绝的消息。

【问题讨论】:

    标签: wordpress docker networking centos port


    【解决方案1】:

    如果我是你,我不会再费心在容器级别进行配置,而是使用 Nginx 或 Apache 之类的应用服务器来解析 DNS 并通过反向代理将传入流量重定向到容器。

    如果这不可能,您能否提供(我假设的)docker-compose 文件和您必须设置服务器的 dockerfiles?

    编辑: 不要在 443 上运行 docker 容器,它可以在内部侦听您想要的任何端口,但将其映射到其他端口,例如 8080,用于以下示例配置。

    nginx.conf

    http {
      include /etc/nginx/mime.types;
      default_type application/octet-stream;
    
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
      ssl_prefer_server_ciphers on;
    
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;
    
      gzip on;
    
      server {
        listen 80;
    
        server_name example.com;
    
        rewrite ^ https://$host$request_uri permanent;
      }
    
      server {
        listen 443 ssl http2;
    
        server_name example.com;
    
        ssl on;
        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/privkey.key;
          
        location / {
          proxy_pass http://127.0.0.1:8080;
        }
      }
    }
    

    【讨论】:

    • 嗨,我没有使用 docker-compose。我只是使用 docker run 命令从正确的图像设置我的容器。
    • 我可以使用 Nginx,但是由于我能够分别通过 443 和 80 个端口(https 和 http)发布 nginx Web 服务,我的容器仍然无法从外部网络访问:(
    • 我建议使用 docker compose 只是因为它设置简单,并且可以在断电的情况下自动重启,例如。因此,您安装 nginx,为您的容器设置反向代理,并完成配置以启用 ssl 终止、证书管理和 http 到 https 重定向。我上面提到的所有内容都可以在一些简单的谷歌搜索中找到。我可以提供您需要做的确切配置,但现在我正在用手机写信,请告诉我。
    • 嗨 Gabriel 我有 nginx 在 CentOS 机器上运行,如果你能支持配置,那就太好了。我没有安装 docker compose,因为它根本不需要运行应用程序。我想我可能会在某个时候添加它,但我希望将这台机器上安装的应用程序数量保持在最低限度。所以现在我有 localhost 在 443 上运行,不知不觉中我无法从外部访问。我应该将其更改为其他端口并使用 443 和 80 到 443 重定向公开 Nginx?
    • 谢谢!那行得通,我现在可以访问 WP 网站。但是,链接存在小问题。单击链接后,它会将我重定向到本地主机,因此假设我登陆我的网站 - {{my-ip}},暴露的链接显示 {{my-ip}}/my_contact_page,但是一旦我单击它,我就是重定向到 127.0.0.1/my_contact_page。我认为这可能与这个“重写”部分有关?我已经赞成你的回答:)。
    猜你喜欢
    • 2018-03-08
    • 2014-10-26
    • 2012-08-10
    • 1970-01-01
    • 2019-05-25
    • 2018-06-15
    • 2011-06-23
    • 2023-03-02
    • 2018-05-22
    相关资源
    最近更新 更多