Skip to content

Gestion du certificat X509 pour un site sur PLMshift

Gestion des accès via un Ingress

la ressource Ingress est une ressource standard, il est préférable de l'utiliser.

Un accès via Ingress avec un domaine en .apps.math.cnrs.fr

Créez une ressource du type :

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: un_nom_significatif
  annotations:
    route.openshift.io/termination: edge
spec:
  ingressClassName: openshift-default
  rules:
    - host: mon_site.math.cnrs.fr
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nom_du_service_du_site_web
                port:
                  number: 8080_ou_port_du_service

Un accès via Ingress avec un domaine en .math.cnrs.fr

Vous pouvez profiter des certificats CNRS (Sectigo) pour le domain .math.cnrs.fr en suivant les indication suivantes :

  • demandez au support de la PLM une entrée dans le DNS du domaine math.cnrs.fr
  • créez une ressource de type Ingress (et non pas une Route) sous la forme suivante :
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: un_nom_significatif
  annotations:
    cert-manager.io/cluster-issuer: sectigo-acme
spec:
  ingressClassName: openshift-default
  tls:
    - hosts:
        - mon_site.math.cnrs.fr
      secretName: un_nom_significatif
  rules:
    - host: mon_site.math.cnrs.fr
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nom_du_service_du_site_web
                port:
                  number: 8080_ou_port_du_service

Un accès via Ingress avec un domaine différent de .math.cnrs.fr

Vous pouvez profiter des certificats LetsEncrypt pour tout domaine autre que .math.cnrs.fr en suivant les indication suivantes :

  • vous avez la maîtrise du DNS et faites pointer votre site vers le nom plmshift.math.cnrs.fr
  • créez une ressource du type :
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: un_nom_significatif
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt
spec:
  ingressClassName: openshift-default
  tls:
    - hosts:
        - mon_site.math.cnrs.fr
      secretName: un_nom_significatif
  rules:
    - host: mon_site.math.cnrs.fr
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nom_du_service_du_site_web
                port:
                  number: 8080_ou_port_du_service

Gestion des accès via une Route

Les applications sur PLMshift exposent un service web via une route. Seules les routes HTTPS sont routées vers ces routes.

Pour les applications de test, sans visibilité publique recherchée, il est conseillé d'utiliser une URL sous apps.math.cnrs.fr. Cette URL ne doit pas interférer avec d'autres projets. L'URL générée par défaut est https://service-projet.apps.math.cnrs.fr/ Un certificat wildcard TCS est alors utilisé.

Pour utiliser un autre nom DNS, il y a le choix entre : - le dépôt d'un certificat - utiliser Let'Encrypt - pour les domaines en math.cnrs.fr utiliser Sectigo-ACME

Dépôt d'un certificat

Modifier la route pour ajouter les éléments suivants :

spec:
  tls:
    termination: edge
    certificate: |
      -----BEGIN CERTIFICATE-----
      MIIGSTCCBTGgAwIBAgISBEuuqv1pXB+YbxLW/vHtKZ79MA0GCSqGSIb3DQEBCwUA
      [...]
      XdA+SCOND4YLbhI3WuNcahXCmZ7KpSQflfOKylM=
      -----END CERTIFICATE-----
    key: |
      -----BEGIN RSA PRIVATE KEY-----
      MIIJJwIBAAKCAgEAwDR4j9U3sY3Om/9Gjs/ml6HRD9kkbuFUmGGuMFMKna5vLQ9v
      [...]
      QZxxYSnJoG+8MXN75bQ6ua0MaboKDmVKxE/8fIlnoMUCHzq2ZC5rlMmUzg==
      -----END RSA PRIVATE KEY-----
    insecureEdgeTerminationPolicy: Redirect

Vous pouvez modifier le DNS pour router vers PLMshift avec une décalaration de type A IN 147.210.130.50.

Let's Encrypt

Suivre les instructions de création de route mais sans spécifier de certificat. Pour activer le service de certificat Let'sEncrypt, il faut ajouter une annotation à la route.

La demande de certificat Let'sEncrypt passe par une validation d'un chalenge déposé par l'opérateur Let'sEncrypt sous la forme d'une route temporaire sous votre URL. Pour que la création soit validée, la résolution DNS du site doit être opérationnelle. A défaut, cela prend un peu plus de temps pour que le cache DNS de Let'sEncrypt soit actualisé.

Editer la configuration YAML de la route et ajouter :

metadata:
  annotations:
    kubernetes.io/tls-acme: 'true'

Au bout d'un certain temps et d'un temps certain, le certificat est généré. Il est présent sous forme d'annotations ajoutées à la route.

metadata:
  annotations:
    acme.openshift.io/status: |
      provisioningStatus:
        earliestAttemptAt: "2020-05-11T08:26:47.337968854Z"
        orderStatus: valid
        orderURI: https://acme-v02.api.letsencrypt.org/acme/order/81724948/3321715598
        startedAt: "2020-05-11T08:26:47.337968854Z"
    kubernetes.io/tls-acme: 'true'

Certificats CNRS (Sectigo)

Vous pouvez profiter des certificats CNRS (Sectigo) pour le domain .math.cnrs.fr en créant une ressource de type Ingress (et non pas une Route) en suivant les indication suivantes :

  • demandez au support de la PLM une entrée dans le DNS du domaine math.cnrs.fr
  • créez une ressource de type Ingress (et non pas une Route) sous la forme suivante :
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  name: un_nom_significatif
  annotations:
    cert-manager.io/cluster-issuer: sectigo-acme
spec:
  tls:
    - hosts:
        - mon_site.math.cnrs.fr
      secretName: un_nom_significatif
  rules:
    - host: mon_site.math.cnrs.fr
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nom_du_service_du_site_web
                port:
                  number: 8080_ou_port_du_service