カスタム TLS 証明書を追加します
既存の自己署名 TLS 証明書を削除して、認証局( CA )が署名した TLS 証明書に置き換えることができます。
-
Astra Control Center をインストールした Kubernetes クラスタ
-
実行するクラスタ上のコマンドシェルへの管理アクセス
kubectl
コマンド -
CA の秘密鍵ファイルと証明書ファイル
自己署名証明書を削除します
既存の自己署名 TLS 証明書を削除します。
-
SSH を使用して、 Astra Control Center をホストする Kubernetes クラスタに管理ユーザとしてログインします。
-
次のコマンドを使用して、現在の証明書に関連付けられているTLSシークレットを検索します
<ACC-deployment-namespace>
Astra Control Center導入ネームスペースを使用して、次の作業を行います。kubectl get certificate -n <ACC-deployment-namespace>
-
次のコマンドを使用して、現在インストールされているシークレットと証明書を削除します。
kubectl delete cert cert-manager-certificates -n <ACC-deployment-namespace> kubectl delete secret secure-testing-cert -n <ACC-deployment-namespace>
新しい証明書を追加します
CA によって署名された新しい TLS 証明書を追加します。
-
次のコマンドを使用して、 CA の秘密鍵ファイルと証明書ファイルを使用して新しい TLS シークレットを作成し、括弧 <> の引数を適切な情報に置き換えます。
kubectl create secret tls <secret-name> --key <private-key-filename> --cert <certificate-filename> -n <ACC-deployment-namespace>
-
次のコマンドと例を使用して、クラスタカスタムリソース定義(CRD)ファイルを編集し、を変更します
spec.selfSigned
の値spec.ca.secretName
以前に作成したTLSシークレットを参照するには、次の手順を実行しますkubectl edit clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace> .... #spec: # selfSigned: {} spec: ca: secretName: <secret-name>
-
次のコマンドと出力例を使用して、変更が正しいこと、および交換する証明書をクラスタで検証する準備ができていることを確認します
<ACC-deployment-namespace>
Astra Control Center導入ネームスペースを使用して、次の作業を行います。kubectl describe clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace> .... Status: Conditions: Last Transition Time: 2021-07-01T23:50:27Z Message: Signing CA verified Reason: KeyPairVerified Status: True Type: Ready Events: <none>
-
を作成します
certificate.yaml
次の例を使用してファイルを作成し、括弧<>のプレースホルダ値を適切な情報に置き換えます。apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <certificate-name> namespace: <ACC-deployment-namespace> spec: secretName: <certificate-secret-name> duration: 2160h # 90d renewBefore: 360h # 15d dnsNames: - <astra.dnsname.example.com> #Replace with the correct Astra Control Center DNS address issuerRef: kind: ClusterIssuer name: cert-manager-certificates
-
次のコマンドを使用して証明書を作成します。
kubectl apply -f certificate.yaml
-
次のコマンドと出力例を使用して、証明書が正しく作成されていること、および作成時に指定した引数(名前、期間、更新期限、 DNS 名など)を使用していることを確認します。
kubectl describe certificate -n <ACC-deployment-namespace> .... Spec: Dns Names: astra.example.com Duration: 125h0m0s Issuer Ref: Kind: ClusterIssuer Name: cert-manager-certificates Renew Before: 61h0m0s Secret Name: <certificate-secret-name> Status: Conditions: Last Transition Time: 2021-07-02T00:45:41Z Message: Certificate is up to date and has not expired Reason: Ready Status: True Type: Ready Not After: 2021-07-07T05:45:41Z Not Before: 2021-07-02T00:45:41Z Renewal Time: 2021-07-04T16:45:41Z Revision: 1 Events: <none>
-
次のコマンドおよび例を使用して、入力 CRD TLS オプションを編集し、新しい証明書シークレットを指定します。括弧 <> のプレースホルダ値を適切な情報に置き換えます。
kubectl edit ingressroutes.traefik.containo.us -n <ACC-deployment-namespace> .... # tls: # options: # name: default # secretName: secure-testing-cert # store: # name: default tls: options: name: default secretName: <certificate-secret-name> store: name: default
-
Web ブラウザを使用して、 Astra Control Center の導入 IP アドレスにアクセスします。
-
証明書の詳細がインストールした証明書の詳細と一致していることを確認します。
-
証明書をエクスポートし、結果を Web ブラウザの証明書マネージャにインポートします。