自己署名証明書を作成し、Kubernetesシークレットにリンクする

最終公開日 : Oct 02, 2026
手順のステップを使用して、OpenSSLで自己署名証明書を作成し、Kubernetesシークレットにリンクします。このシークレットを使用して、Ingressを保護できます。

自己署名証明書を作成する

以下の手順でTLSシークレットを作成できます。この手順では、自己署名証明書とキーが作成されます。 それをKubernetesシークレットにリンクし、そのシークレットをIngressでIngressを保護するために使用できます。
openssl genrsa -out cert_key.pem 2048
openssl req -new -key cert_key.pem -out cert_csr.pem -subj "/CN=example.com"
openssl x509 -req -in cert_csr.pem -sha256 -days 365 -extensions v3_ca -signkey cert_key.pem -CAcreateserial -out cert_cert.pem
注:
ここでは、example.comが参照用に使用されています。example.comを必要なドメイン名に置き換える必要があります。
この例では、日数が365日と記載されているため、生成された証明書の有効期間は1年間です。

証明書をKubernetesシークレットにリンクする

証明書をKubernetesシークレットにリンクするには、以下の手順を実行します。
  1. 作成したTLS証明書に基づいてKubernetesシークレットを作成するには、次のコマンドを実行します。
    kubectl create secret tls tls-secret --cert=cert_cert.pem --key=cert_key.pem
  2. TLS証明書情報を含むシークレットを表示するには、次のコマンドを実行します。
    kubectl get secret tls-secret

Ingressをデプロイする

Ingress構成を作成して適用します。以下のYAMLは参照用として使用できます。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-demo
  namespace: netscaler®
  annotations:
spec:
  ingressClassName: citrix®
  tls:
  - secretName: tls-secret
    hosts:
      - "example.com"
  rules:
  - host:  "example.com"
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-test
            port:
              number: 80