作業概要
通常インターネットでのWebアプリケーションを公開する場合、カスタムドメインを利用する
カスタムドメインを利用する際は、HTTPS通信の場合、証明書が必要となりユーザ管理となるため更新処理が手間になることが多い
SecretManagerを利用することでカスタムドメイン証明書も自動更新が可能となり、運用性が高まる
今回はIKS上でSecret Managerのカスタムドメイン証明書を参照し、自動更新を行う
利用する証明書はPart2の記事で実施した証明書、カスタムドメイン名:"acspaas.site"
Part2:DNS Providerの設定と自動更新カスタムドメイン証明書(パブリック)の発行
全体の流れ
ボリュームがあるので、全5回で記事を記載します。
本記事では「4.IKSからパブリック証明書の参照と自動更新」の内容を記載
前回
1.自動証明書管理環境(ACME)のセットアップと認証局の構成
2.DNS Providerの設定と自動更新カスタムドメイン証明書(パブリック)の発行
3.IKSとSecret Managerの連携設定と自動更新の確認
本記事はこちら
4.[IKSからパブリック証明書の参照と自動更新]
次回以降
5.IngressALBから証明書の利用とアプリケーションへのHTTPS動作確認
全体図
IKSでSecret Managerを利用して、IngressALBにPublic証明書を適用し、証明書の自動更新を行う一例
IKSでSecret Managerにあるパブリック証明書を参照してシークレットを作成
まずは、参照する証明書のCRNを確認する
IKSから証明書を参照し、シークレットを作成
% ibmcloud ks ingress secret create --name testcert-namespace-before --cluster cv4ef49t0jeirigoaasg --cert-crn crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 --namespace test
OK
確認
% ibmcloud ks ingress secret ls --cluster cv4ef49t0jeirigoaasg
OK
名前 名前空間 CRN 有効期限 ドメイン 状況 タイプ
acs-sectest-d13c20a300620486546182a0effece00-0000 default crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 ibm-cert-store crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 kube-system crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
testcert-namespace-before test crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 2025-06-04T02:14:48+0000 acspaas.site created TLS
有効期限:2025-06-04T02:14:48+0000、ドメイン:acspaas.siteの作成ができている
パブリック証明書の更新と同期
先ほどのパブリック証明書を更新し、先ほど作ったシークレットと同期するか確認する
新しく更新した証明書をIKS上で参照し、シークレットを作成
% ibmcloud ks ingress secret create --name testcert-namespace-after --cluster cv4ef49t0jeirigoaasg --cert-crn crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 --namespace test
OK
確認
% ibmcloud ks ingress secret ls --cluster cv4ef49t0jeirigoaasg
OK
名前 名前空間 CRN 有効期限 ドメイン 状況 タイプ
acs-sectest-d13c20a300620486546182a0effece00-0000 default crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 ibm-cert-store crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 kube-system crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
testcert-namespace-after test crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 2025-06-04T15:54:31+0000 acspaas.site created TLS
testcert-namespace-before test crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 2025-06-04T02:14:48+0000 acspaas.site created TLS
testcert-namespace-after => 今回更新した証明書
testcert-namespace-before => 更新前の古い証明書
Secret Managerとの同期は1日1回行われるため、現時点では二つの証明書は同期されておらず、有効期限が異なる状態
参考:登録済みの Secrets Manager インスタンスに保管されているシークレットは自動的に更新されますか?
1日経過後に確認し、証明書が同期されていることを確認
これにより、カスタムドメイン証明書もSecret Managerにより自動更新が実施され、IKSまで正常に反映されることがわかる
% ibmcloud ks ingress secret ls --cluster cv4ef49t0jeirigoaasg
OK
名前 名前空間 CRN 有効期限 ドメイン 状況 タイプ
acs-sectest-d13c20a300620486546182a0effece00-0000 default crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 ibm-cert-store crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
acs-sectest-d13c20a300620486546182a0effece00-0000 kube-system crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ae2673ed-958c-0324-b6db-dd75277acd12 2025-06-04T03:13:29+0000 acs-sectest-d13c20a300620486546182a0effece00-0000.jp-tok.containers.appdomain.cloud created TLS
testcert-namespace-after test crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 2025-06-04T15:54:31+0000 acspaas.site created TLS
testcert-namespace-before test crn:v1:bluemix:public:secrets-manager:jp-tok:a/db415c559c0e468cb9414edb82aee6fe:5074d80d-949c-468e-9991-7cb884063380:secret:ad685e86-e7dd-6286-31b0-597b0dd77309 2025-06-04T15:54:31+0000 acspaas.site created TLS