6.2.6.2.2. ルートへの HTTP リクエストの作成
すべての例で、次の curl コマンドを使用して HTTP リクエストを作成できます。インラインスクリプトを使用して、openshift 名前空間とクラスターベースドメインを取得します。これらのインラインスクリプトをサポートしないシェルを使用している場合は、インラインスクリプトを実際の名前空間とベースドメインの値に置き換える必要があります。
curl -k https://platform-http-server-`oc config view --minify -o 'jsonpath={..namespace}'`.`oc get dnses/cluster -ojsonpath='{.spec.baseDomain}'`/hello?name=Camel-Kシークレットを使用してエッジルートを追加するには、
-secretで終わるパラメーターを使用して、証明書を含むシークレット名を設定します。このルート例の特性は、tls.keyとtls.crtという名前の 2 つのキーを含むmy-combined-certsという名前のシークレットを参照しています。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
シークレットを使用してパススルールートを追加するには、統合 Pod で TLS を設定し、実行中の統合 Pod でキーと証明書を表示する必要があります。これを実現するには、
--resourcekamel パラメーターを使用して統合 Pod にシークレットをマウントします。次に、いくつかの camel quarkus パラメーターを使用して、実行中の Pod でこれらの証明書ファイルを参照します。これらのファイルは、-p quarkus.http.ssl.certificateで始まります。このルート例の特性は、tls.keyとtls.crtという名前の 2 つのキーを含むmy-combined-certsという名前のシークレットを参照しています。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
シークレットを使用して再暗号化ルートを追加するには、統合 Pod で TLS を設定し、実行中の統合 Pod でキーと証明書を表示する必要があります。これを実現するには、
--resourcekamel パラメーターを使用して統合 Pod にシークレットをマウントします。次に、いくつかのcamel quarkus パラメーターを使用して、実行中の Pod でこれらの証明書ファイルを参照します。これらのファイルは、-p quarkus.http.ssl.certificateで始まります。このルート例の特性は、tls.keyとtls.crtという名前の 2 つのキーを含むmy-combined-certsという名前のシークレットを参照しています。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
ルートのシークレットからの特定の証明書と統合エンドポイントの証明書を提供する Openshift サービスを使用して、再暗号化ルートを追加します。このように、証明書を提供する Openshift サービスは統合 Pod でのみセットアップされます。キーと証明書は実行中の統合 Pod に表示される必要があります。これを実現するには、
--resourcekamel パラメーターを使用して統合 Pod にシークレットをマウントし、次にいくつかのcamel quarkus パラメーターを使用して実行中の Pod でこれらの証明書ファイルを参照します。-p quarkus.http.ssl.certificateで始まります。このルート例の特性は、tls.keyとtls.crtという名前の 2 つのキーを含むmy-combined-certsという名前のシークレットを参照しています。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
次に、統合サービスにアノテーションを付けて、証明書を提供する Openshift サービスを注入する必要があります
oc annotate service platform-http-server service.beta.openshift.io/serving-cert-secret-name=cert-from-openshift
ローカルファイルシステムから提供された証明書と秘密鍵を使用してエッジルートを追加します。この例では、インラインスクリプトを使用して証明書と秘密鍵ファイルの内容を読み取り、すべての改行文字を削除します (これは、証明書をパラメーターの値として設定するために必要です)。したがって、値は 1 行になります。
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;}')"