cert-manager Kubernetesの上に構築され、認証局と証明書をKubernetesAPIのファーストクラスのリソースタイプとして導入します。この機能により、Kubernetesクラスター内で作業している開発者にサービスとしての証明書を提供できます。
cert-manager
は、 Apache License 2.0に基づくオープンソースプロジェクトです。 Jetstackによって提供されます 。 cert-manager
以降 はオープンソースアプリケーションであり、独自のGitHubページがあります。
このガイドでは、cert-manager
をインストールする方法を説明します。 オペレーターを使用したRedHatOpenShiftで 。その後、インストールされたcert-manager
を介して自己署名証明書を発行します 。このビデオを見て、このチュートリアルに従うこともできます。
[次のこともお勧めします:LinuxコマンドラインツールでCA証明書を利用できるようにする]
ステップ1:cert-managerのドキュメントを読む
プロジェクトのウェブサイトには、cert-manager
に関する豊富な情報が掲載されています。 、概要、アーキテクチャ、使用ガイドを含みます。

そのドキュメントを調べると、概念、インストール、構成、使用法、チュートリアル、FAQなどをカバーする詳細なドキュメントを見つけることができます。ウェルカムページに、cert-manager
の高レベルのアーキテクチャ図が表示されます。 。

GitHubリポジトリから、追加のドキュメントを見つけたり、プロジェクトに貢献したりすることもできます。

cert-manager
をインストールできます バニラKubernetes環境またはOpenShiftのいずれか。このチュートリアルでは、cert-manager
をインストールします OpenShiftで。

OpenShiftインストールドキュメントには、通常のマニフェストファイルまたはcert-manager Operatorの2つの異なるオプションが用意されています。 OpenShiftWebコンソールインターフェースで利用できます。 オペレーター経由でインストールします 。

cert-manager
以降 サポートされている発行者によって機能します アプリケーション証明書を割り当てるための署名機関として機能するため、どの発行者を決定する必要があります。 使用します。この決定は通常、ドメインネームサービス(DNS)プロバイダーによって異なります。たとえば、 Microsoft Azureを使用している場合 アプリケーションをホストするには、 ACMEを選択する必要があります AzureDNSの適切な手順を見つけてください 。もう1つの人気のある選択肢は、 Let's Encryptです。 。ただし、この場合は、可能な限り単純な発行者を選択する必要があります。 。したがって、 SelfSigned Issuerを使用します 。

発行者に関するドキュメント 以下に示します。 発行者 またはClusterIssuer カスタムリソース定義(CRD) 発行者のタイプを構成するために適用できます 。 発行者の種類を区別するもの 仕様の後に来る 。そのセクションで、 selfSignedを指定します 仕様の下 。この例では、 ClusterIssuerを使用します 発行者の代わりに 発行者が1人欲しいからです すべての名前空間の証明書を管理します。

かつての発行者 が選択および構成されたら、特定のアプリの証明書を発行します。このステップでは、証明書を作成します YAMLファイルで定義されているリソース。

ステップ2:サンプルのClusterIssuerファイルとサンプルの証明書ファイルを調べる
このチュートリアルで使用される2つのサンプルファイルがあります。最初のサンプルファイルはClusterIssuerを定義します 、自己署名証明書を使用して、すべての名前空間の証明書を管理します。 仕様の下 、 selfSigned:{}という行を追加するだけです 。

apiVersion: cert-manager.io/v1alpha3
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
次に、サンプルの証明書を見てください 定義。

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: <certificate name>
spec:
secretName: <secret name to store>
duration: 2160h0m0s # 90d
renewBefore: 360h0m0s # 15d
organization:
- "<your organization>"
keySize: 2048
keyAlgorithm: rsa
keyEncoding: pkcs1
usages:
- server auth
- client auth
# At least one of a DNS Name, URI, or IP address is required.
dnsNames:
- '<hostname>.<cluster-url>'
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
証明書 ファイルはもう少し複雑で、かなりの数の変更を加える必要があります。 証明書に注意してください 値は、ルートを公開するアプリケーションごとに割り当てられます 、したがって、TLS/SSL証明書を必要とするアプリケーションが必要です。行う必要のある変更は次のとおりです。
- 4行目-metadata.name:この証明書に名前を付ける必要があります。
- 6行目-spec.secretName:証明書はOpenShiftシークレットに保存されるため、この名前が必要です。
- 9行目-spec.organization:組織の名前を指定する必要があります。
- 19行目-spec.dnsNames:おそらく最も重要な設定の1つであり、これはアプリのOpenShiftルートと一致する必要があります。
必要に応じて、他のフィールドを変更することもできます。組織の要件と設定に基づいて設定を調整するには、必ずcert-managerの公式ドキュメントを参照してください。
ステップ3:OpenShiftのOperatorを介してcert-managerをインストールします
cert-manager
をデプロイする準備ができました 。 OpenShift Webコンソールと、cert-manager
をインストールするためのWebコンソールの優れたグラフィカルインターフェースを次に示します。 オペレーターと 。この変更を行うには、 cluster-adminが必要です。 特権。

OperatorHubをクリックします 演算子の下 。オプションが表示されない場合は、 cluster-adminではない可能性があります。 。 OperatorHubが表示されたら、cert-manager
を検索します 。いくつかの証明書マネージャーがいることに注意してください。ただし、コミュニティバージョンの証明書マネージャーを選択してください。

ブレードスタイルのウィンドウが表示されます。基本的な手順をいくつか読み、インストールをクリックします 準備ができたら。

デフォルトでは、cert-manager
openshift-operatorsにインストールされます 名前空間。現在のところ、これはデフォルトのオプションであり、Webインターフェイスでは変更できません。すべてをそのままにして、インストールをクリックします 。

これにより、cert-manager
が起動します オペレーター インストールプロセス。すべてがうまくいけば、cert-manager
オペレーター インストールする必要があります。

cert-manager
の後 オペレーター インストールするには、 CertManagerをクリックします cert-managerのOperatorの下にあるタブ 。

オペレーター は、アプリのさまざまなインストールおよび管理プロセスのライフサイクルマネージャーにすぎません。 cert-manager
を実際にインストールするには 、 CertManagersを作成する必要があります 実例。 YAMLファイルビューを含む構成を確認します。すべてが良さそうな場合は、作成をクリックします ボタン。

この手順では、 CertManagerの新しいインスタンスをインストールします 。すべてが正常に見えると、新しいcert-manager
が表示されます。 CertManagersの下に表示されます タブ。

必ずポッドをクリックしてください 進行状況を監視して、すべてがスムーズに進むことを確認します。これで、 ClusterIssuerをインストールする手順の準備が整いました。 次に、証明書を生成します。

ステップ4:証明書を発行できるClusterIssuerを生成する
ターミナルウィンドウを開き、OpenShiftクラスターにログインします。 ClusterIssuerを覚えておいてください 作成したファイル?ファイルが存在するディレクトリに移動し、次のコマンドを入力します。
oc apply -f <name of ClusterIssuer file>
すべてがうまくいくと、自己署名発行者が作成されたことを示すメッセージが表示されます。

証明書マネージャーのポッドに戻り、そのうちの1つをクリックして、自己署名発行者がインストールされていることを確認できます。

確認するもう1つの方法は、ターミナルウィンドウから次のコマンドを使用することです。
# First run this command to see our Issuers:
oc get clusterissuers
# Next, run this command to see the structure of the Issuer
oc get - yaml clusterissuers/<an Issuer name from above>
この特定の発行者に関する印刷された詳細が表示されます。 。

発行者のインストールが完了しました 。最後に、アプリのサンプル証明書の生成に進むことができます。
ステップ5:名前空間で証明書を発行する
あなたがする必要がある唯一のことはあなたの証明書を適用することです アプリのファイル。 OpenShiftクラスターにログインしていることを確認してから、プロジェクトに切り替えてください。 Quayの証明書を生成します 、 quad-enterpriseという名前空間を使用しているため 、ただし、これは、アプリケーションで呼び出すことができるものであれば何でもかまいません。プロジェクトに参加したら、次のコマンドを入力します。
oc apply -f <a Certificate definition file>
証明書が作成されたことを示すメッセージが表示されます。次のコマンドを使用して、証明書が実際に存在することを確認できます。
oc get certificate

OpenShiftのWebコンソールに戻り、プロジェクトをクリックして、シークレットをクリックします。 ワークロードの下 アプリケーション用に作成された新しいTLS/SSL証明書を検出します。

まとめ
この記事は、cert-manager
をインストールする方法を理解するのに役立ちます RedHatOpenShiftのOperator アプリケーションの自己署名証明書を生成します。
[Ansibleについてもっと知りたいですか? RedHatから無料の技術概要コースを受講してください。 Ansible Essentials:自動化の技術概要のシンプルさ。 ]