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” … ```