TLS Certificate managment#

ハイブリッドマネージャーポータルのカスタムx.509証明書を設定する#

ハイブリッドマネージャーHMポータルが使用する自己署名x.509証明書を独自に変更できます。

独自の証明書をインポートするには、サーバー証明書とプライベートキーを含むKubernetesシークレットを作成する必要があります。

証明書を生成する#

証明書例my-certificate.crt とプライベートキー例my-certificate.key のbase64エンコード文字列を生成します。

cat my-certificate.crt | base64
cat my-certificate.key | base64

yamlファイルを作成する#

次の内容を含むファイル例my-secret.yaml を作成し、 <base64 encoded string> を前の手順で生成された値に置き換えます。

apiVersion: v1
data:
  tls.crt: <base64 encoded string>
  tls.key: <base64 encoded string>
kind: Secret
metadata:
  name: my-portal-certificate
  namespace: default
  annotations:
    replicator.v1.mittwald.de/replicate-to: istio-system
type: kubernetes.io/tls

Kubernetesクラスターにシークレットを適用する#

kubectl apply -n default -f ./my-secret.yaml

Helmチャートを編集する#

parameters.global の下に入力変数portal_certificate_secret を追加し、その値を作成したばかりのシークレットの名前に設定することにより、Helm value.yamlファイルを編集します。

例

parameters:
  global:
    portal_certificate_secret: "my-portal-certificate"

Helmチャートの更新#

Helm upgrade コマンドを実行して、HMに変更を適用します。

helm upgrade \
    -n edbpgai-bootstrap \
    --install \
    --f my-values.yaml

警告

Helm Chartのインストールに使用した入力変数のセットを常に提供してください。 2回目のHelm upgradeコマンドの実行でカスタム入力のいずれかを指定しない場合、その値はデフォルトに設定されます。

シークレットのフォーマットの詳細については、 Istio documentation を参照してください。

HMポータルのカスタムcert-manager発行者を設定する#

HMポータルの証明書は、HMの内部証明書マネージャーでサポートされているx.509発行者のいずれかを使用して生成および管理することもできます。 Let’s Encrypt証明書のACME発行者。

cert-manager Webサイトから直接選択した発行者のドキュメントに従って、設定できます。

注釈

発行者ではなくクラスター発行者を設定することをお勧めします。発行者を設定する場合は、istio-system名前空間で作成する必要があります。

ClusterIssuerが構成されたら、 values.yaml を更新し、Helm upgrade を再度実行することにより、その名前をHMに渡すことができます。

values.yaml で編集する必要があるセクションは次のとおりです。

parameters:
  global:
    portal_certificate_issuer_kind: "ClusterIssuer" # Valid values are Issuer and ClusterIssuer
    portal_certificate_issuer_name: "my-issuer" # Your Issuer name

最後に、 Helm upgradeコマンドを実行して、HMに変更を適用します。

helm upgrade \
    -n edbpgai-bootstrap \
    --install \
    --f my-values.yaml

この機能を利用したい場合は、parameters.global.portal_certificate_secret を設定しないようにしてください。

警告

Helm Chartのインストールに使用した入力変数のセットを常に提供してください。 2回目のHelm upgradeコマンドの実行でカスタム入力のいずれかを指定しない場合、その値はデフォルトに設定されます。

独自のプライベート認証局を使用する#

デフォルトでは、HMが使用するすべての証明書は、cert-managerを使用して内部認証局CAによって署名されます。 CAはインストール時に作成されます。

独自のプライベートCAを使用する場合は、このセクションの手順に従ってください。それ以外の場合、このセクションはスキップできます。

注釈

この方法を正常に使用するには、CAプライベートキーにアクセスする必要があります。

CAシークレットが存在しない場合は、作成します。

apiVersion: v1
data:
  ca.crt: <base64 encoded string> # real ca crt provided by customers
  tls.crt: <base64 encoded string> # real tls crt provided by customers
  tls.key: <base64 encoded string> # real tls key provided by customers
kind: Secret
metadata:
  name: my-custom-ca
  namespace: default
  annotations:
    replicator.v1.mittwald.de/replicate-to: cert-manager
type: kubernetes.io/tls

警告

my-custom-caは、global-ca-secret を除き、選択した名前に変更できます。 次のコマンドを実行するときは、選択した名前と一致するようにしてください。

value.yamlを介して渡すことにより、helmアップグレードを実行して、新しいCAを設定できます。

edb_notranlate_8 bash helm upgrade  -n edbpgai-bootstrap  –install  … –set parameters.global.ca_secret_name=“my-custom-ca”  … ```