9.5. 発行者による証明書の設定
cert-manager Operator for Red Hat OpenShift を使用すると、クラスター内のワークロードだけでなく、クラスターの外部で対話するコンポーネントの証明書を、更新や発行などのタスクを処理して管理できます。
9.5.1. ユーザーワークロードの証明書を作成する
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift がインストールされている。
手順
- 発行者を作成します。詳細は、「関連情報」セクションの「発行者の設定」を参照してください。
証明書を作成します。
Certificate
オブジェクトを定義する YAML ファイル (例:certificate.yaml
) を作成します。certificate.yaml
ファイルの例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: <issuer_namespace> 2 spec: isCA: false commonName: '<common_name>' 3 secretName: <secret_name> 4 dnsNames: - "<domain_name>" 5 issuerRef: name: <issuer_name> 6 kind: Issuer
次のコマンドを実行して、
Certificate
オブジェクトを作成します。$ oc create -f certificate.yaml
検証
次のコマンドを実行して、証明書が作成され、使用できる状態になっていることを確認します。
$ oc get certificate -w -n <issuer_namespace>
証明書のステータスが
Ready
になると、クラスター上のワークロードは、生成された証明書シークレットの使用を開始できます。
9.5.2. API サーバーの証明書を作成する
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.13.0 以降がインストールされている。
手順
- 発行者を作成します。詳細は、「関連情報」セクションの「発行者の設定」を参照してください。
証明書を作成します。
Certificate
オブジェクトを定義する YAML ファイル (例:certificate.yaml
) を作成します。certificate.yaml
ファイルの例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: openshift-config spec: isCA: false commonName: "api.<cluster_base_domain>" 2 secretName: <secret_name> 3 dnsNames: - "api.<cluster_base_domain>" 4 issuerRef: name: <issuer_name> 5 kind: Issuer
次のコマンドを実行して、
Certificate
オブジェクトを作成します。$ oc create -f certificate.yaml
- API サーバーの名前が付いた証明書を追加します。詳細は、「関連情報」セクションの「API サーバーの名前が付いた証明書を追加する」セクションを参照してください。
証明書が更新されていることを確認するには、証明書を作成した後に oc login
コマンドを再度実行します。
検証
次のコマンドを実行して、証明書が作成され、使用できる状態になっていることを確認します。
$ oc get certificate -w -n openshift-config
証明書のステータスが
Ready
になると、クラスター上の API サーバーは、生成された証明書シークレットの使用を開始できます。
9.5.3. Ingress コントローラーの証明書を作成する
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.13.0 以降がインストールされている。
手順
- 発行者を作成します。詳細は、「関連情報」セクションの「発行者の設定」を参照してください。
証明書を作成します。
Certificate
オブジェクトを定義する YAML ファイル (例:certificate.yaml
) を作成します。certificate.yaml
ファイルの例apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <tls_cert> 1 namespace: openshift-ingress spec: isCA: false commonName: "apps.<cluster_base_domain>" 2 secretName: <secret_name> 3 dnsNames: - "apps.<cluster_base_domain>" 4 - "*.apps.<cluster_base_domain>" 5 issuerRef: name: <issuer_name> 6 kind: Issuer
次のコマンドを実行して、
Certificate
オブジェクトを作成します。$ oc create -f certificate.yaml
- デフォルトの ingress 証明書を置き換えます。詳細は、「関連情報」セクションの「デフォルトの ingress 証明書を置き換える」セクションを参照してください。
検証
次のコマンドを実行して、証明書が作成され、使用できる状態になっていることを確認します。
$ oc get certificate -w -n openshift-ingress
証明書のステータスが
Ready
になると、クラスター上の Ingress コントローラーは、生成された証明書シークレットの使用を開始できます。