14.7. サンプルアプリケーションのデプロイ
動的証明書を設定したら、サンプルアプリケーションをデプロイして、新しいルートの公開時に証明書がプロビジョニングされ、信頼されることを確認します。
サンプルアプリケーション用に新しいプロジェクトを作成します。
$ oc new-project hello-world
Hello World アプリケーションをデプロイします。
$ oc -n hello-world new-app --image=docker.io/openshift/hello-openshift
クラスターの外部からアプリケーションを公開するためのルートを作成します。
$ oc -n hello-world create route edge --service=hello-openshift hello-openshift-tls --hostname hello.${DOMAIN}
ルートの証明書が信頼されていないことを確認します。
$ curl -I https://hello.${DOMAIN}
出力例
curl: (60) SSL: no alternative certificate subject name matches target host name 'hello.example.com' More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
ルートにアノテーションを付けて、cert-manager をトリガーしてカスタムドメインの証明書をプロビジョニングします。
$ oc -n hello-world annotate route hello-openshift-tls cert-manager.io/issuer-kind=ClusterIssuer cert-manager.io/issuer-name=letsencrypt-production
注記証明書の作成には 2 - 3 分かかります。証明書の更新は、有効期限が近づくと、cert-manager Operator によって自動的に処理されます。
ルートの証明書が信頼されていることを確認します。
$ curl -I https://hello.${DOMAIN}
出力例
HTTP/2 200 date: Thu, 05 Oct 2023 23:45:33 GMT content-length: 17 content-type: text/plain; charset=utf-8 set-cookie: 52e4465485b6fb4f8a1b1bed128d0f3b=68676068bb32d24f0f558f094ed8e4d7; path=/; HttpOnly; Secure; SameSite=None cache-control: private