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 uneRoute
) 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 uneRoute
) 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