Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Configurer l'accès HTTPS pour un service Knative

Dernière mise à jour :Sep 12, 2026

Si vous utilisez un domaine personnalisé pour un service Knative, configurez-y un certificat HTTPS afin de sécuriser les données en transit. Knative prend en charge l'accès HTTPS, ce qui vous permet d'associer un service Knative à un domaine personnalisé de manière sécurisée.

Prérequis

Knative est déployé dans votre cluster. Pour plus d'informations, consultez les rubriques et Déployer et gérer les composants Knative.

Étape 1 : Créer un service Knative

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Sur la page Knative, sous l'onglet Services, définissez le paramètre Namespace sur default, puis cliquez sur Create from Template. Utilisez le modèle d'exemple pour créer un service Knative nommé helloworld-go. Suivez les instructions affichées à l'écran.

    Une fois le service créé, l'onglet Services affiche le service helloworld-go avec le statut Successful. Le nom de domaine par défaut est helloworld-go.default.example.com. Avant d'accéder au service, configurez l'en-tête Host afin de garantir que les requêtes adressées au domaine du service soient acheminées par la passerelle d'accès.

Étape 2 : Configurer le service HTTPS

La méthode de configuration HTTPS dépend du type de passerelle utilisé :

  • Passerelle ALB : Un AlbConfig gère les certificats. Activez TLS en ajoutant une annotation ; aucune gestion manuelle des certificats n'est nécessaire.

  • Passerelle Kourier : Créez manuellement un Secret contenant le certificat, puis utilisez un DomainMapping pour lier ce Secret au domaine.

ALB

Spécifiez un certificat dans l'AlbConfig et activez l'accès TLS dans le service Knative à l'aide de l'annotation knative.k8s.alibabacloud/tls: "true". Voici un exemple.

Pour activer l'accès HTTPS, ajoutez une annotation TLS à votre service Knative et configurez un écouteur sur le port 443 dans votre AlbConfig.

  1. Ajoutez l'annotation knative.k8s.alibabacloud/tls: "true" au fichier YAML de votre service Knative.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld
      namespace: default
      annotations:
        knative.k8s.alibabacloud/tls: "true"
    spec:
      template:
        spec:
          containers:
          - image: registry-vpc.cn-shenzhen.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Replace with your region.
            env:
            - name: TARGET
              value: "Knative"
  2. Ajoutez un écouteur sur le port 443 à votre AlbConfig, tel que knative-internet, pour acheminer le trafic HTTPS vers le cluster.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: knative-internet
    spec:
      config:
      ...
      listeners:
        - port: 443
          # Options include HTTP, HTTPS, and QUIC
          protocol: HTTPS 
      ...
  3. Vérifiez que le service est accessible via HTTPS.

    # Replace with your ALB gateway address.
    curl -H "Host: helloworld.knative.top" https://alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com -k

    Résultat attendu :

    Hello Knative!

Kourier

La passerelle Kourier ne dispose pas de gestion intégrée des certificats. Stockez le certificat TLS sous forme de Secret dans le cluster, puis utilisez un DomainMapping pour associer le certificat au domaine.

1. Créer un Secret de certificat

L'exemple suivant utilise un certificat HTTPS auto-signé généré avec OpenSSL. Si vous possédez déjà un fichier de certificat au format .pem, ignorez l'étape 1 et commencez directement à l'étape 2.

Les certificats auto-signés sont destinés uniquement à des fins de test. Dans les environnements de production, utilisez un certificat émis par une autorité de certification (CA).
  1. Créez un certificat auto-signé à l'aide d'OpenSSL.

    openssl genrsa -out knativetop-key.pem 4096
    openssl req -subj "/CN=helloworld.knative.top" -sha256  -new -key knativetop-key.pem -out knativetop.csr
    echo subjectAltName = DNS:helloworld.knative.top > extfile.cnf
    openssl x509 -req -days 3650 -sha256 -in knativetop.csr -signkey knativetop-key.pem -out knativetop-cert.pem -extfile extfile.cnf

    Résultat attendu :

    Signature ok
    subject=CN = helloworld.knative.top
    Getting Private key
  2. En option, récupérez l'encodage Base64 des fichiers knativetop-key.pem et knativetop-cert.pem générés à l'étape 1. Cette étape n'est nécessaire que si vous créez manuellement le Secret à partir d'un fichier YAML ; elle n'est pas requise pour la commande kubectl de l'étape suivante.

    • Appliquez l'encodage Base64 au fichier knativetop-key.pem.

      cat knativetop-key.pem | base64

      Résultat attendu :

      a25hdGl2ZXRvcC1r******
    • Appliquez l'encodage Base64 au fichier knativetop-cert.pem.

      cat knativetop-cert.pem | base64

      Résultat attendu :

      a25hdGl2ZXRvcC1jZ******==
  3. Créez le Secret.

    Utilisez un Secret dans la configuration TLS d'un service Knative pour activer l'accès sécurisé au domaine helloworld.knative.top.

    kubectl create secret tls secret-tls --key knativetop-key.pem --cert knativetop-cert.pem

    Résultat attendu :

    secret/secret-tls created

2. Créer un DomainMapping

Dans Knative, un DomainMapping est une ressource qui associe un domaine à un ou plusieurs services Knative.

Une fois le Secret créé, utilisez un DomainMapping pour lier le domaine personnalisé au service Knative et activer le chiffrement TLS en référençant le Secret.

  1. Créez un fichier helloworld.knative.top.yaml et saisissez la configuration DomainMapping suivante.

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top
      namespace: default
    spec:
      ref:
        name: helloworld-go
        kind: Service
        apiVersion: serving.knative.dev/v1
    # tls block specifies the secret to be used
      tls:
        secretName: secret-tls
  2. Appliquez le DomainMapping au cluster.

    kubectl apply -f helloworld.knative.top.yaml

    Résultat attendu :

    domainmapping.serving.knative.dev/helloworld.knative.top created
  3. Exécutez la commande suivante pour vérifier que le DomainMapping est prêt.

    kubectl get domainmapping helloworld.knative.top

    Résultat attendu :

    NAME                          URL                                      READY   REASON
    helloworld.knative.top       https://helloworld.knative.top            True
  4. Vérifiez que le service est accessible via le domaine personnalisé.

    # Replace with your Kourier gateway address.
    curl -H "Host: helloworld.knative.top" https://8.141.XX.XX -k

    Résultat attendu :

    >Hello Knative!

Documents connexes