首页 > 解决方案 > kubernetes + 入口控制器 + 让我们加密 + 阻止混合内容

问题描述

感谢您抽时间阅读。

我正在 digitalocean 中测试一组 kubernetes。

我已经安装了一个带有 cert-manager 和 letsencript 的入口控制器(我遵循了本指南https://cert-manager.io/docs/tutorials/acme/ingress/),当我启动一些部署时,我遇到了文件问题不在根目录中(阻止加载混合活动内容)。

举一个更具体的例子,我正在尝试放置应用程序 bookstack,如果我没有激活 tls,我会正确看到所有内容。另一方面,如果我激活 tls,我会看到没有 css 的所有内容,并且在控制台中我看到有些文件已被浏览器阻止。 在此处输入图像描述

另一方面,如果我进行端口转发,我会正确看到它(http://localhost:8080/)-> 请注意 http 而不是 https 在此处输入图像描述

我也用wordpress做了测试,同样的问题,主页没有样式。在这种情况下,对于 wordpress 有一个插件,如果你进入后端(浏览没有 css 的页面是一种折磨)并安装它可以解决问题(这是插件https://es.wordpress.org/plugins /ssl-insecure-content-fixer/)。在插件上,我必须检查“HTTP_X_FORWARDED_PROTO”才能使其工作。但我意识到这是一个反复出现的问题,而且我认为有些概念我不清楚,我不太清楚我必须做什么。

这是入口控制器的示例

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: bookstack
  annotations:
    kubernetes.io/ingress.class: "nginx"    
    # cert-manager.io/issuer: "letsencrypt-staging"
    cert-manager.io/issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - k1.athosnetwork.es
    secretName: tls-bookstack
  rules:
  - host: k1.athosnetwork.es
    http:
      paths:
      - path: /
        backend:
          serviceName: bookstack
          servicePort: 80

非常感谢你花时间陪伴

标签: sslkuberneteslets-encryptnginx-ingress

解决方案


我找到了解决方案,我根据我的情况为其他人写了它。

问题出在我没有在部署中编写的一个环境变量上。

APP_URL 。

在 bookstack dockerhub 存储库上谈论它:

-e APP_URL=http://your.site.here.xyz    for specifying the url your application will be accessed on (required for correct operation of reverse proxy)

推荐阅读