6.2.6.2.2. 向路由发出 HTTP 请求


对于所有示例,您可以使用以下 curl 命令进行 HTTP 请求。如果您使用内联脚本来检索 openshift 命名空间和集群基域,如果使用不支持这些内联脚本的 shell,您应该将内联脚本替换为实际命名空间和基域的值。

curl -k https://platform-http-server-`oc config view --minify -o 'jsonpath={..namespace}'`.`oc get dnses/cluster -ojsonpath='{.spec.baseDomain}'`/hello?name=Camel-K
Copy to Clipboard Toggle word wrap
  • 要使用 secret 添加 边缘路由,请使用以 -secret 结尾的参数设置包含证书的 secret 名称。此路由特征引用了名为 my-combined-certs 的 secret,它包含两个名为 tls.keytls.crt 的键。

    kamel run --dev PlatformHttpServer.java -t route.tls-termination=edge -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key
    Copy to Clipboard Toggle word wrap
  • 要使用 secret 添加 passthrough 路由,TLS 在集成 pod 中是设置,在运行集成 pod 中应该可以看到密钥和证书,以便使用 --resource kamel 参数在集成 pod 中挂载 secret,然后使用一些 camel quarkus 参数在运行的 pod 中引用这些证书文件,它们以 -prkus.http.ssl.certificate 开头。此路由特征引用了名为 my-combined-certs 的 secret,它包含两个名为 tls.keytls.crt 的键。

    kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=passthrough -t container.port=8443
    Copy to Clipboard Toggle word wrap
  • 要使用 secret 添加 重新加密路由,TLS 在集成 pod 中是设置,在运行集成 pod 中应该可以看到密钥和证书,以便使用 --resource kamel 参数在集成 pod 中挂载 secret,然后使用一些 camel quarkus 参数在运行的 pod 中引用这些证书文件,它们以 -prkus.http.ssl.ssl.certificate.此路由特征引用了名为 my-combined-certs 的 secret,它包含两个名为 tls.keytls.crt 的键。

    kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs  -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=reencrypt -t route.tls-destination-ca-certificate-secret=my-combined-certs/tls.crt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443
    Copy to Clipboard Toggle word wrap
  • 使用来自路由的 secret 的特定证书添加 重新加密路由,并为集成端点使用 Openshift service serving 证书。这样,Openshift 服务证书只在集成 pod 中设置。密钥和证书应该在运行的集成 pod 中可见,以便实现这一点,使用 --resource kamel 参数在集成 pod 中挂载 secret,然后使用一些 camel quarkus 参数在运行的 pod 中引用这些证书文件,它们以 -p quarkus.http.ssl.certificate 开头。此路由特征引用了名为 my-combined-certs 的 secret,它包含两个名为 tls.keytls.crt 的键。

    kamel run --dev PlatformHttpServer.java --resource secret:cert-from-openshift@/etc/ssl/cert-from-openshift  -p quarkus.http.ssl.certificate.file=/etc/ssl/cert-from-openshift/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/cert-from-openshift/tls.key -t route.tls-termination=reencrypt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443
    Copy to Clipboard Toggle word wrap

    然后,您应该注解集成服务以注入 Openshift 服务证书

    oc annotate service platform-http-server service.beta.openshift.io/serving-cert-secret-name=cert-from-openshift
    Copy to Clipboard Toggle word wrap
  • 使用从您的本地文件系统提供的证书和私钥添加 边缘路由。本例使用内联脚本读取证书和私钥文件内容,然后删除所有新行字符(这只需要将证书设置为参数的值),因此这些值位于一行中。

    kamel run PlatformHttpServer.java --dev -t route.tls-termination=edge -t route.tls-certificate="$(cat tls.crt|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')" -t route.tls-key="$(cat tls.key|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')"
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat