当前位置: 首页 > 知识库问答 >
问题:

无法在 openshift 4.3 路由中实现端到端加密

狄河
2023-03-14

我们有一个AngularJS应用程序,其中有一个nodejs应用程序,它只在HTTPS端口为443时为服务主机名创建证书和密钥。然后创建的证书在nginx中使用,如下所示:

<% if ENV["HTTPS__ENABLED"] == "true" %>
listen <%= ENV["HTTPS__PORT"] %> ssl;
# These files are generated by the node app
ssl_certificate /cert.csr;
ssl_certificate_key /tls_private_key.csr;
ssl_protocols TLSv1.2;
<% end %>

但是当我在路由中设置443端口并重新加密终止时,它在访问应用程序时出现以下错误

Application is not available

The application is currently not serving requests at this endpoint. It may not have been started or is still starting.

请求甚至没有到达pod。如果我创建带有边缘终止的路由,则会出错

400 Bad Request
The plain HTTP request was sent to HTTPS port

在边缘终止中,从路由器到pod没有加密。我不能使用直通终止策略,因为我们的路由中有路径,直通终止不支持。

有人可以让我知道如何在 OpenShift 4.3 中实现端到端加密。我们在这里不使用自定义域。

我正在检查创建重新加密路由的方法oc创建路由重新加密--service=frontend--cert=tls。crt--key=tls。key--dest ca cert=destca。crt--ca证书=ca。crt--hostname=www.example.com

但是由于我们不使用自定义域,我们的路由应该使用默认证书和密钥,对吗?所以没有必要提供这些权利吗?我不知道如何为这条路线创建 --dest-ca-cert。

共有2个答案

高森
2023-03-14

对于重新加密路由,pod需要配置TLS证书,因为它必须响应源自OpenShift路由器的TLS请求。从尝试使用边缘路由时出现的错误可以看出,您已经有了。

现在,必须使用要在实际路由中使用的相同主机名创建此TLS证书。此TLS证书不必是CA签名的证书,但主机名必须与路由匹配。只有这样,路线才能将流量转发到您的吊舱。

牧甫
2023-03-14

TLS已经在我们的AngularJS应用程序中启用,使用nodejs应用程序创建证书和密钥,供Nginx使用。群集中的Pod使用TLS,它是由CA颁发的,这是我们应该放入路由的destinationCACert中的证书。CA证书是路由器确定是否可以信任TLS通信的上游POD的方式。

我们使用位于 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 的 ca.cert 作为目标证书,同时创建重新加密路由。我们在创建路由时选择了 HTTPS 端口。oc create route reencrypt --service=frontend --cert=tls.crt --key=tls.key --dest-ca-cert=destca.crt --ca-cert=ca.crt --hostname=www.example.com

这里tls.cert和tls.key对我们来说是不需要的,因为我们使用的是OpenShift集群的默认域。我们使用的唯一证书是--dest-ca-cert,它也可以在openShift-service-ca命名空间的秘密service-service-cerer-sa-Token-l42lm中找到

 类似资料:
  • 我正在创建一个web服务,它可以在线存储带有公钥的用户列表,以及加密的消息。我的最终目标是端到端加密。 我最初认为这很容易——“哦,OpenSSL和RSA私钥/公钥非对称加密很棒。”错误的RSA只会加密一点点数据,大概是为了来回传递一个常规的对称密钥。 好吧,所以我试着在网上找到解决办法。他们中的大多数人要么在没有运行示例的情况下结束,要么指向使用命令行,所有这些似乎都是过度和不完整的。 有没有一

  • 本文向大家介绍director.js实现前端路由使用实例,包括了director.js实现前端路由使用实例的使用技巧和注意事项,需要的朋友参考一下 做过后端开发,尤其是使用过类似Django或者express对服务器端的路由功能应该都比较熟悉,国外流行的博客系统wordpress也是非常经典的路由实现案例。那么,究竟什么的路由呢,下面通过wordpress来简单讲一下。 理解wordpress重写

  • react&React-Router的新功能。我正在使用react-router-4 我有以下组件-login-home-header-sidebar-content 登录组件没有标题或侧栏。 这就是我的路由 应用程序JS 然后在我的Home组件中,我有侧边栏和内容。 home.js呈现方法 侧边栏组件有一个链接,该链接具有“to”值“/home/dashboard”。 不幸的是,这并不奏效。单击

  • 问题内容: 我正在尝试开发客户端服务器TCP / IP应用程序。我的PC上运行着一台服务器,移动设备上运行着客户端应用程序。它们都在同一个Wi- Fi网络中,但是我无法在它们之间建立连接。在调试客户端Android应用时,显示以下错误: 我正在使用的代码: 我究竟做错了什么? 问题答案: no route错误表示尝试进行TCP连接时,连接失败,因为基础协议软件找不到到指定目标节点的网络节点到网络节

  • 我正在用Laravel 5.7启动一个新项目。我用artisan制作了标准的laravel Auth。它在routes/web中注册了一个新路由。php是什么 问题是,当我将“/home”重命名为“/admin”时,它不起作用。它返回“未在此服务器上找到请求的资源/管理员”错误我可以将“/home”替换为除“/admin”之外的任何内容。其他任何东西都可以正常工作。“/admin”有什么问题,为什

  • WHITE_NAME_LIST打印结果['Login', 'Home', 'Root', 'RedirectTo', 'Redirect', 'PageNotFound', 'PageNotFound'] const router = useRouter() 打印router