Ingress Nginx 中的 TCP 暴露服务与 ssl 一起使用?
TCP exposed service in an Ingress Nginx works with ssl?
如果我有 TLS 的后端实现,Ingress NGINX 是否正确公开它?
我正在通过具有以下配置的 Ingress NGNIX 公开 MQTT 服务:
ConfigMap:
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-tcp-microk8s-conf
namespace: ingress
#Add the service we want to expose
data:
1883: "default/mosquitto-broker:1883"
守护进程集:
---
apiVersion: apps/v1
kind: DaemonSet
...
spec:
selector:
matchLabels:
name: nginx-ingress-microk8s
template:
metadata:
...
spec:
...
ports:
- containerPort: 80
- containerPort: 443
#Add the service we want to expose
- name: prx-tcp-1883
containerPort: 1883
hostPort: 1883
protocol: TCP
args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-load-balancer-microk8s-conf
- --tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp-microk8s-conf
- --udp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-udp-microk8s-conf
$DEFAULT_CERT
$EXTRA_ARGS
我已将 MQTT 代理配置为在后端使用 TLS。当我 运行 我的机器中的代理在 kubernetes 集群之外时,Wireshark 将消息检测为 TLS,并且它没有显示任何关于 MQTT 的信息:
但是,如果我 运行 集群内的代理,它表明我正在使用 MQTT,而与 TLS 无关。但是消息没有被正确读取:
最后,如果我 运行 集群内的 MQTT 代理没有 TLS,Wireshark 会正确检测到 MQTT 数据包:
我的问题是:当我在集群内部使用 TLS 时,连接是否加密?Wireshark 确实没有显示数据包的内容,但它知道我'使用 MQTT。也许是因为 headers 没有加密,但有效负载是?有谁知道吗?
问题是我是 运行 TLS MQTT 在端口 8883 中,正如文档所建议的那样(不是在标准 MQTT 的 1883 端口中),但是 Wireshark 没有将这个端口识别为 MQTT 端口,所以Wireshark 给出的格式有点损坏。
如果我有 TLS 的后端实现,Ingress NGINX 是否正确公开它?
我正在通过具有以下配置的 Ingress NGNIX 公开 MQTT 服务:
ConfigMap:
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-tcp-microk8s-conf
namespace: ingress
#Add the service we want to expose
data:
1883: "default/mosquitto-broker:1883"
守护进程集:
---
apiVersion: apps/v1
kind: DaemonSet
...
spec:
selector:
matchLabels:
name: nginx-ingress-microk8s
template:
metadata:
...
spec:
...
ports:
- containerPort: 80
- containerPort: 443
#Add the service we want to expose
- name: prx-tcp-1883
containerPort: 1883
hostPort: 1883
protocol: TCP
args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-load-balancer-microk8s-conf
- --tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp-microk8s-conf
- --udp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-udp-microk8s-conf
$DEFAULT_CERT
$EXTRA_ARGS
我已将 MQTT 代理配置为在后端使用 TLS。当我 运行 我的机器中的代理在 kubernetes 集群之外时,Wireshark 将消息检测为 TLS,并且它没有显示任何关于 MQTT 的信息:
但是,如果我 运行 集群内的代理,它表明我正在使用 MQTT,而与 TLS 无关。但是消息没有被正确读取:
最后,如果我 运行 集群内的 MQTT 代理没有 TLS,Wireshark 会正确检测到 MQTT 数据包:
我的问题是:当我在集群内部使用 TLS 时,连接是否加密?Wireshark 确实没有显示数据包的内容,但它知道我'使用 MQTT。也许是因为 headers 没有加密,但有效负载是?有谁知道吗?
问题是我是 运行 TLS MQTT 在端口 8883 中,正如文档所建议的那样(不是在标准 MQTT 的 1883 端口中),但是 Wireshark 没有将这个端口识别为 MQTT 端口,所以Wireshark 给出的格式有点损坏。