Sécuriser une application OpenShift avec HTTPS en self-service
Voici une démarche pas-à-pas pour activer le HTTPS automatique via cert-manager sur OpenShift sans ticket IWS. Cette méthode inclut l'automatisation du renouvellement et la validation du certificat — tout en self-service.
Prérequis
OpenShift >= 4.12
Le cert-manager Operator est installé sur le cluster
Vous avez la main sur les ressources du namespace ou des ClusterIssuer
Liste des ClusterIssuers à utiliser:
letsencryptletsencrypt-stagingselfsigned
I. Modification de la route
1. Annotation direct
Sur la console OPENSHIFT, en tant qu’Administrateur de votre namespace, se rendre dans la partie “ NETWORKING “, dans l’onglet “Routes”.
Cliquer sur “…” puis “Edit annotations”

Puis remplir les champs comme cela (ici pour exemple, on utilise le ClusterIssuers letsencrypt):

2. Edition du YAML de la route sur OpenShift
Annoter simplement la Route pour demander un certificat automatique (Let's Encrypt ici) :
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: mon-app-route
annotations:
cert-manager.io/issuer-kind: ClusterIssuer
cert-manager.io/issuer-name: letsencrypt
spec:
host: mon-app.example.com
to:
kind: Service
name: mon-app-service
port:
targetPort: 8080
Une fois créée, cert-manager va automatiquement délivrer et installer le certificat TLS dans la Route.
Aucun ticket, n’as besoin d'être créer
II. Modification de l’ingress
1. Annotation direct
Sur la console OPENSHIFT, en tant qu’Administrateur de votre namespace, se rendre dans la partie “ NETWORKING “, dans l’onglet “Ingresses”.
Cliquer sur “…” puis “Edit annotations”

Puis remplir les champs comme cela (ici pour exemple, on utilise le ClusterIssuers letsencrypt):

2. Edition du YAML du Ingress sur OpenShift
Annoter simplement la Route pour demander un certificat automatique (Let's Encrypt ici) :
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: mon-app-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt
.....
Une fois créée, cert-manager va automatiquement délivrer et installer le certificat TLS dans la Route.
Aucun ticket, n’as besoin d'être créer
III. Validation du certificat
Avec un navigateur
Accédez à
https://mon-app.example.com— vérifiez que le cadenas est vert ou affiche "connexion sécurisée".Cliquez sur le cadenas pour afficher les détails du certificat.
Avec curl
curl -v https://mon-app.example.com
Chercher la ligne
* SSL certificate verify ok.pour valider que le certificat est reconnu.
Vous pouvez aussi vérifier la validité du certificat et l'autorité émettrice :
openssl s_client -connect mon-app.example.com:443
IV. Renouvellement automatique
cert-manager renouvelle automatiquement les certificats bien avant leur expiration (par défaut
renewBefore30j pour un Let's Encrypt de 90j, personnalisable via annotation).Vous n'avez rien à faire : tant que la route est annotée et l'issuer fonctionnel, le processus est entièrement automatisé et transparent.