GNU/Linux >> Linux の 問題 >  >> Linux

OpenShiftでCert-Managerオペレーターを使用してTLS/SSL証明書を作成する方法

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:自動化の技術概要のシンプルさ。 ]


Linux
  1. cPanelを使用してサードパーティのSSL証明書をインストールする方法

  2. SSL/TLS証明書で接続を保護する方法

  3. SSL/TLSでvsFTPdを保護する方法

  1. LinuxメールサービスをSSL/TLSで保護する方法

  2. Lets Encrypt SSL/TLS証明書をcertbotで管理する方法

  3. SSL / TLS暗号化接続でVSFTPDを構成する方法は?

  1. EmacsでLaTeXドキュメントを作成する方法

  2. SSL証明書を使用してポート8443でPleskホスト名を保護する方法

  3. Ubuntu18.04で自己署名SSL証明書を作成する方法