Bonjour,
Je possède un Managed k8s cluster chez OVH, avec Istio et Knative Serving. J'ai réussi à obtenir un certificat TLS pour me connecter via HTTPS à la main via buzut.net/certbot-challenge-dns-ovh-wildcard/ avec DNS-01. Voici les étapes :
étape 1 : récupéré dns_ovh_endpoint, dns_ovh_application_key, dns_ovh_application_secret et dns_ovh_consumer_key sur https://api.ovh.com/createToken/ dans un fichier ~/.ovhapi
étape 2 : `sudo certbot certonly --dns-ovh --dns-ovh-credentials ~/.ovhapi -d "*.default.mydomain.fr`
étape 3 : kubectl create --namespace istio-system secret tls istio-ingressgateway-certs \
--key /etc/letsencrypt/live/default.mydomain.fr/privkey.pem \
--cert /etc/letsencrypt/live/default.mydomain.fr/fullchain.pem
étape 4 : kubectl edit gateway knative-ingress-gateway --namespace knative-serving
- hosts:
- '*'
port:
name: https
number: 443
protocol: HTTPS
tls:
mode: SIMPLE
privateKey: /etc/istio/ingressgateway-certs/tls.key
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
Cependant je n'arrive pas à mettre en place la génération automatique des certificats via cert-manager ClusterIssuer toujours avec DNS-01, en suivant https://knative.dev/docs/serving/using-auto-tls/.
La première étape de ce tuto est de créer un ClusterIssuer, voici un exemple pour Google Cloud, cependant je n'arrive pas à l'adapter pour OVH :
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-dns-issuer
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
# This will register an issuer with LetsEncrypt. Replace
# with your admin email address.
email: myemail@gmail.com
privateKeySecretRef:
# Set privateKeySecretRef to any unused secret name.
name: letsencrypt-dns-issuer
solvers:
- dns01:
clouddns:
# Set this to your GCP project-id
project: $PROJECT_ID
# Set this to the secret that we publish our service account key
# in the previous step.
serviceAccountSecretRef:
name: cloud-dns-key
key: key.json
Merci pour votre aide !
Dimitri
[Auto TLS sur k8s] ClusterIssuer cert-manager pour OVH
Sujets apparentés
- Kubectl - TLS handshake timeout
5616
18.03.2019 09:07
- Docker registry private
5372
13.10.2016 07:26
- Ingress on ports 80/443 for cluster
4183
05.12.2018 14:44
- Kubernetes Metrics
3178
18.11.2019 10:49
- A-t-on une idée des futurs tarifs?
3027
03.04.2019 19:18
- OVH Managed Kubernetes security patches
2902
06.12.2018 10:23
- Kubernetes ingress port 80 & 443
2778
31.12.2018 11:48
- Node Autoscaling / K8s dans une autre région: est-ce que K8s vaut le coup ?
2596
23.01.2020 16:40
- Datastore commun ?
2589
12.10.2016 12:15
Bonjour,
Je me permet de répondre pour partager ma petite solution.
Ce n'est peut-être, voir surement pas la meilleur mais elle fonctionne ;)
Je suis arrivé au même cas que toi Dimiti et voilà ce que j'ai fait :
pour le dns je me suis inscrit sur CloudFlare et remplacé les serveur DNS de mon nom de domaine par les leurs.
Ensuite j'ai créé un secret contenant ma clé API
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
type: Opaque
stringData:
api-token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Que je récupére ensuite dans mon Issuer
dns01:
cloudflare:
email: address_mail@fai.com
apiKeySecretRef:
name: cloudflare-apikey-token-secret
key: api-token
Voilà en espérant que cela puisse aider
Bonjour,
La réponse de @MatthieuL29 ne te satisfait pas ?
Pour ce qui est de la validation DNS01, le plugin officiel cert-manager n'est pas encore sorti, du coup tu peux tenter en methode HTTP01 de cert-manager, celle-ci fonctionne, réf : https://www.youtube.com/watch?v=srwdd-ombBc
Sébastien
Bonjour, je reviens sur le sujet pour vous partager ma solution avec Ovh et Let's Encrypt.
J'ai fait un petit article dessus que je vous pose ici : https://matthieulmr.fr/ovh-cloud-kubernetes-ssl/ https://matthieulmr.fr/ovh-cloud-kubernetes-ssl/
PS : Merci @SebastienJ18 c'est la vidéo qui m'a mit sur la piste ;)
Hello,
Super nouvelle ! très content que notre Tech Talk ai pu t'aider.
Le petit tuto que tu as fait, est top merci pour ta contribution.
Sébastien
Bonjour,
Le tuto de @MatthieuL29 n'est plus disponible (404). Avez-vous avancé quant au plugin officiel OVH, ou avez-vous une documentation complète pour l'implémentation du challenge DNS de cert-manager pour la génération automatique de certificat wildcard ?
Merci pour votre réponse et les excellents tutos!
Bonjour @Pierre-JacquesD,
Je n'ai pas eu de nouvelles concernant l'avancée du module pour cert-manager :/
@MatthieuL29 si tu arrives a mettre ton tuto sur un projet Github en mode markdown ce serait super, si jamais tu as le temps de le faire.
Merci pour les encouragements
Bonjour à tous ! Je viens de tomber sur ce post en recherchant un moyen d'intégrer les certificats wildcard avec le challenge DNS01 de lets encrypt sous cert-manager, et j'ai trouvé un super dépôt Github qui le permet grace aux webhook cert-manager :https://github.com/baarde/cert-manager-webhook-ovh
La marche à suivre est plutôt simple, et la solution est à mon sens suffisamment pérenne pour de la production :
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
spec:
acme:
# The ACME server URL
server: https://1v02.api.letsencrypt.org/directoryv02.api.letsencrypt.org/directory
# Email address used for ACME registration
email:
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt
# Enable the HTTP-01 challenge provider
solvers:
- dns01:
webhook:
groupName: ''
solverName: ovh
config:
endpoint: ovh-eu
applicationKey:
applicationSecretRef:
key:
name: ovh-credentials
consumerKey:
J'espère que ça en aidera certains ,
Bonne journée !
Hello,
Des gens qui ont intégrée le webhook ovh sur cert-manager ont-il déjà rencontrer ce problème dans le challenge ?
```
web traefik-web-cert-XXXXXXX pending www.mondomaine.fr OVH API call failed: GET /domain/zone/fr/status - Error 400: "Invalid signature"
```
D'après ce que je comprend, le webhook essaie de call les API avec `/domain/zone/fr/status` au lien de `/domain/zone/mondomaine.fr/status` sauf que je ne trouve pas pourquoi :/
message supprimé car spam
spam passé entre les mailles du filet de la modération
Merci pour la notification.
Je fais remonter l'information rapidement afin de supprimer ce message qui n'a rien à faire ici.
-- Joël