将 Let's Encrypt 与 openshift-acme 结合使用

问题描述

我正在尝试使用 openshift-acme 从 Let's Encrypt 获取正确的证书,用于在 Openshift 3.11 集群中运行的 nodejs 应用程序。 https://github.com/tnozicka/openshift-acme

我不知道如何在应用的路由中进行设置。有人可以帮我找到完成这项工作的步骤吗?我需要如何在我的应用程序中设置 Express?在 Express 中只收听 http 或同时收听 http/https?我需要密钥/证书/pem 文件吗?我迷路了。

解决方法

设置它的最简单方法是在您的 Express 应用程序中没有特殊处理。让它侦听 HTTP,然后设置一个指向 pod 服务的 OpenShift 路由。根据 openshift-acme 的文档,您将注释您的路线:

metadata:
  annotations:
    kubernetes.io/tls-acme: "true"

这将在路由处设置 TLS 终止,因此您的应用程序的用户会公开看到 HTTPS,但随后从路由器到您的应用程序的流量将作为 HTTP 进行。

或者,您可以设置路由以执行 Passthrough,并将 TLS 密钥/证书作为文件挂载到您的 pod 中,然后以这种方式将其读入您的 Express 应用程序。这将使路由器透明地传递流量,并且一直到您的应用程序都将使用 HTTPS。

TLS 终止当然是最简单的选项,但直通可能更彻底