Implementing TLS certificates#
ハイブリッドマネージャーポータルのカスタム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
新しい証明書を使用するようにHMを構成する#
HybridControlPlane CRを編集して、spec.globalParameters
の下にportal_certificate_secret パラメーターを追加します。
apiVersion: edbpgai.edb.com/v1alpha1
kind: HybridControlPlane
metadata:
name: edbpgai
spec:
globalParameters:
portal_certificate_secret: "my-portal-certificate"
# ... your other globalParameters
更新されたCRを適用します。
kubectl apply -f hybridmanager.yaml
オペレーターは変更を調整し、ポータルの証明書構成を更新します。
シークレットのフォーマットの詳細については、 Istio documentation を参照してください。
HMポータルのカスタムcert-manager発行者を設定する#
HMポータルの証明書は、HMの内部証明書マネージャーでサポートされているx.509発行者のいずれかを使用して生成および管理することもできます。 Let’s Encrypt証明書のACME発行者。
cert-manager Webサイトから直接選択した発行者のドキュメントに従って、設定できます。
注釈
発行者ではなくクラスター発行者を設定することをお勧めします。発行者を設定する場合は、istio-system名前空間で作成する必要があります。 !!!
ClusterIssuerが構成されたら、その名前をHMに渡します。
注釈
cert-manager発行者の使用と独自の証明書シークレットの提供は相互に排他的です。発行者を構成する場合、CRで`spec.globalParameters.portal_certificate_secret` も設定しないでください。 !!!
HybridControlPlane CRを編集して、spec.globalParameters
の下に発行者パラメーターを追加します。
apiVersion: edbpgai.edb.com/v1alpha1
kind: HybridControlPlane
metadata:
name: edbpgai
spec:
globalParameters:
portal_certificate_issuer_kind: "ClusterIssuer" # Valid values are Issuer and ClusterIssuer
portal_certificate_issuer_name: "my-issuer" # Your Issuer name
# ... your other globalParameters
更新されたCRを適用します。
kubectl apply -f hybridmanager.yaml
オペレーターは変更を調整し、指定された発行者を使用するようにポータルを構成します。
独自のプライベート認証局を使用する#
デフォルトでは、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 を除き、選択した名前に変更できます。 次のコマンドを実行するときは、選択した名前と一致するようにしてください。 !!!
HybridControlPlane CRを編集して、spec.globalParameters
の下にca_secret_name パラメーターを追加します。
apiVersion: edbpgai.edb.com/v1alpha1
kind: HybridControlPlane
metadata:
name: edbpgai
spec:
globalParameters:
ca_secret_name: "my-custom-ca"
# ... your other globalParameters
更新されたCRを適用します。
kubectl apply -f hybridmanager.yaml
オペレーターは変更を調整し、プライベートCAを使用するようにHMを構成します。