diff --git a/acme.yaml b/acme.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..218a35f47971bc6983c345161d93ba4523bc746c
--- /dev/null
+++ b/acme.yaml
@@ -0,0 +1,16 @@
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+  name: chepia-ch
+spec:
+  acme:
+    server: http://10.152.183.192:8200/v1/pki_int/acme/directory
+    caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURwRENDQW95Z0F3SUJBZ0lVZG5nQ0ZoNEFaYWdlOWZmSGZoYis2UEFPV0Jzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZURVRNQkVHQTFVRUF4TUtZMmhsY0dsaExtTnZiVEFlRncweU5EQTBNVEV3T0RVNE1URmFGdzB5TkRBMApNalV3T0RVNE5ERmFNQlV4RXpBUkJnTlZCQU1UQ21Ob1pYQnBZUzVqYjIwd2dnRWlNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDdGxFbjJtTGlFaGVveUQzNVg2Yi9EZGVmY21OejdKWTZmNkxzYUVPb0QKdHNXTGd3amFIZm5tSEFIbWsxOWJVVlozeE1hNDFoOXg1Y2d3S0k1YndCQ01NTGxZQ0hKVGc4dC95cG1YdWpTbwpPSEYwTDFUV1Q5QkZURWROVERUYUJ6U3IyM1REbHc5cEg5bFdqUlBPL1JVYSsxaGEyazJtY21DN2tZZGdCYjRDCkZsSUR5RXRDRHFuUEc3MWxGeVhsSm5nNWQwUDlPOUUzcmhxWTlpNWhkYTYxaFZWRmVjWGJxOXdZZHBDM0hUSDYKUlRUT0RnWW1wbEJQMjNwRkUvbkZZaDdTNnNBZGVtKytuWG1qZDhkOXVldVc2Zmo1Sit5K2pKdkRaaHMvTU9VZwpFbzN6VW1RMGJlUFRQQ3pZejR5cExlaXp4S1RCVWc4RDAwVC9ibVNKamd6ZkFnTUJBQUdqZ2Vzd2dlZ3dEZ1lEClZSMFBBUUgvQkFRREFnRUdNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGSWxZOFh1Ukc5VnQKTldOaGJPQWthSmxhNG9rZE1COEdBMVVkSXdRWU1CYUFGSWxZOFh1Ukc5VnROV05oYk9Ba2FKbGE0b2tkTURzRwpDQ3NHQVFVRkJ3RUJCQzh3TFRBckJnZ3JCZ0VGQlFjd0FvWWZhSFIwY0Rvdkx6RXlOeTR3TGpBdU1UbzRNakF3CkwzWXhMM0JyYVM5allUQVZCZ05WSFJFRURqQU1nZ3BqYUdWd2FXRXVZMjl0TURFR0ExVWRId1FxTUNnd0pxQWsKb0NLR0lHaDBkSEE2THk4eE1qY3VNQzR3TGpFNk9ESXdNQzkyTVM5d2Eya3ZZM0pzTUEwR0NTcUdTSWIzRFFFQgpDd1VBQTRJQkFRQjAvbWxvc1hJV3JYYldNZ2toSWdFckpZd0ZmUUdPN3p4M2drMCtmbFdxelcxaEFVR1p5MzF2CmRpV1JvcFpUT21zREk3YlBCaGR3QmZLdnlydWVKeEwzNmxPZm5kbFlUNWdBcVQ0czVFWHp0SUExa0h2d2lkQUEKWGo4Q0lWN3BnQlVpc1c1bEwxWm55MEZmRzZENS94RGxVSDJncG1pRGhiKzRmNVY0VGhRNm01Z3l3OVVrYVRVZgo2WVJaT1l1NTdpN1lHQVhDUkNKc3pYV2JpSlMvUVlNTjVwOHZWd2FsQ1FndzVOUzFrL05tS3E1dEpEbnovRjRuCm1FVmZhR0h2STh4N2ExcnlrMUpWK2ZrQVpsdVNIUkFRQWI0dm9MWXB2Mk1tUEorbDVjQ1FQTzV0bXdIakQ2R20KNnNhamNNWWFjVmFFWDdldzVFVW9zU3hwZ1VWZnV0MmUKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
+    privateKeySecretRef:
+      name: issuer-token-lmzpj
+    solvers:
+    - selector: {}
+      http01:
+        ingress:
+          ingressClassName: nginx
+ 
\ No newline at end of file
diff --git a/atelier_secu.md b/atelier_secu.md
index b509f0d8a8db39b263fcb7b3311ed6773c362ef1..cccc8e1d1d20182508c07a02ecb59a6f469b3325 100644
--- a/atelier_secu.md
+++ b/atelier_secu.md
@@ -72,8 +72,22 @@ Initial Root Token: hvs.zWAYhaUkch0hfgfi18fduTvl
 
 --> Pour déverrouiller Vault, il faut que 3 des 5 tokens créés soit renseignés. On doit ensuite se logger avec le token root 
 
+### Install tools on pod
+
+- jq (json parsing)
+
+```
+microk8s kubectl exec -ti vault-0 -- sh
+cd vault
+wget https://github.com/stedolan/jq/releases/download/jq-1.7.1/jq-linux64 -O jq
+chmod +x jq
+```
+
+
 ### Configurer le PKI :
 
+- https://developer.hashicorp.com/vault/tutorials/secrets-management/pki-engine?variants=vault-deploy%3Aselfhosted
+
 #### Root CA :
 
 Commandes :
@@ -99,4 +113,218 @@ vault secrets enable -path=pki_int pki
 vault secrets tune -max-lease-ttl=240h pki_int
 ```
 
-→ TTL 10 jours
\ No newline at end of file
+→ TTL 10 jours
+
+- **ADD GUI STEPS**
+
+
+#### Create a role :
+
+- **ADD GUI STEPS**
+
+
+#### Request certificates
+
+- **ADD GUI STEPS**
+
+### Configurer cert-manager
+
+- https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-cert-manager
+
+### Delete expired certs
+
+```
+vault write pki_int/tidy tidy_cert_store=true tidy_revoked_certs=true
+```
+
+### Root certificate rotation
+
+```
+    vault write pki/root/rotate/internal \
+          common_name="chepia.com" \
+          issuer_name="root-2"
+```
+
+```
+vault write pki/roles/chepia-servers allow_any_name=true
+```
+
+
+#### Root bridge
+
+```
+    cd vault
+    
+    vault write -format=json pki_int/intermediate/cross-sign \
+          common_name="chepia.com" \
+          key_ref="$(vault read pki_int/issuer/root-2 \
+          | grep -i key_id | awk '{print $2}')" \
+          | ./jq -r '.data.csr' \
+          | tee cross-signed-intermediate.csr
+          
+       vault write -format=json pki_int/issuer/root/sign-intermediate \
+          common_name="chepia.com" \
+          csr=@cross-signed-intermediate.csr \
+          | ./jq -r '.data.certificate' | tee cross-signed-intermediate.crt
+          
+          vault write pki/intermediate/set-signed \
+          certificate=@cross-signed-intermediate.crt
+          
+```
+
+#### Set default issuer
+
+```
+vault write pki/root/replace default=root-2
+```
+
+### cross-sign intermediate 
+
+```bash
+cd vault
+
+vault write -format=json pki_int/intermediate/cross-sign \
+   common_name="chepia.com Intermediate Authority" \
+   key_ref="$(vault read pki_int/issuer/$(vault read -field=default pki_int/config/issuers) \
+   | grep -i key_id | awk '{print $2}')" \
+   | ./jq -r '.data.csr' \
+   | tee cross-signed-intermediate.csr
+
+vault write -format=json pki/issuer/root-2/sign-intermediate \
+   common_name="chepia.com Intermediate Authority" \
+   csr=@cross-signed-intermediate.csr \
+   | ./jq -r '.data.certificate' | tee cross-signed-intermediate.crt
+
+vault write pki_int/intermediate/set-signed certificate=@cross-signed-intermediate.crt
+```
+
+### ACME setup
+
+#### terminal :
+```bash
+vault write /sys/mounts/pki_int/tune \
+    passthrough_request_headers="If-Modified-Since" \
+    allowed_response_headers="Last-Modified,Location,Replay-Nonce,Link"
+```
+
+#### GUI :
+- go to the intermediate certificate configuration page
+- add url `http://127.0.0.1:8200/v1/pki_int` to AIA path and Mount's API path 
+- Tick "Enable ACME"
+- save
+
+###  Add ACME to cert-manager
+
+https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-cert-manager
+
+####  add issuer
+
+- Création du fichier de configuration acme.yaml
+
+```yaml
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+    name: chepia-ch
+spec:
+    acme:
+        server: http://127.0.0.1:8200/v1/pki_int
+        caBundle: <root cert in PEM format encoded in base64>
+        privateKeySecretRef:
+             name: issuer-token-lmzpj
+```
+
+- Activation de la config avec `microk8s kubectl apply -f acme.yaml `
+
+### Add ingress to the k8s cluster
+
+- Activer l'addon `ingress`qui permet d'exposer des services gérés par le cluster kubernetes : 
+
+`microk8s enable ingress`
+
+- On peut maintenant créer des règles pour exposer des services en https.
+
+### Create certificate
+
+```
+apiVersion: cert-manager.io/v1 
+
+kind: Certificate 
+
+metadata:
+
+ name: chepia-cert
+
+ namespace: default 
+
+spec:
+
+ issuerRef:
+
+ name: chepia-ch 
+
+ kind: ClusterIssuer 
+
+ secretName: chepia-cert 
+
+ dnsNames:
+
+\- www.chepia.ch
+```
+
+### Expose https service
+
+- Nous allons utiliser un simple serveur web Nginx pour représenter la page d'accueil de l'intranet de notre entreprise :
+
+1. Créer le fichier de config de la page d'accueil :
+
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: nginx-configmap
+ namespace: default
+data:
+ index.html: |
+    &lt;html&gt;
+    &lt;h1&gt; Bienvenue sur l'intranet de CHEPIA &lt;/h1&gt;
+    &lt;h3&gt; Certificats gratos !! &lt;/h3&gt;
+    &lt;/html&gt;
+```
+
+2. Créer le fichier de config du serveur :
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nginx-configmap
+  labels:
+  app: nginx
+spec:
+ selector:
+   matchLabels:
+     app: nginx
+ template:
+   metadata:
+     labels:
+       app: nginx
+   spec:
+     containers:
+     - name: nginx
+     image: nginx:latest
+     ports:
+     - containerPort: 80
+     volumeMounts:
+     - name: nginx-index
+       mountPath: /usr/share/nginx/index.html
+       subPath: index.html
+     volumes:
+     - name: nginx-index
+       configMap:
+         name: nginx-configmap
+```
+
+3. Appliquer les configs :  `microk8s kubectl apply -f nginx-configmap.yaml`, `microk8s kubectl apply -f nginx.yaml`
+
+https://cert-manager.io/docs/usage/ingress/
\ No newline at end of file
diff --git a/cert.yaml b/cert.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7c25c91d4bf573e21bc3674bb2463ac397db820a
--- /dev/null
+++ b/cert.yaml
@@ -0,0 +1,12 @@
+apiVersion: cert-manager.io/v1  
+kind: Certificate  
+metadata:  
+  name: chepia-cert
+  namespace: default  
+spec:  
+  issuerRef:  
+    name: chepia-ch  
+    kind: ClusterIssuer  
+  secretName: chepia-cert 
+  dnsNames:  
+    - www.chepia.ch
\ No newline at end of file
diff --git a/certs/3d-3a-0e-ad-b9-0e-e3-0c-5c-9b-34-0d-76-89-26-47-3c-83-c0-22.pem b/certs/3d-3a-0e-ad-b9-0e-e3-0c-5c-9b-34-0d-76-89-26-47-3c-83-c0-22.pem
new file mode 100644
index 0000000000000000000000000000000000000000..99c56138025c5bd622c1bfaee72bc4a386c2f154
--- /dev/null
+++ b/certs/3d-3a-0e-ad-b9-0e-e3-0c-5c-9b-34-0d-76-89-26-47-3c-83-c0-22.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIUPToOrbkO4wxcmzQNdokmRzyDwCIwDQYJKoZIhvcNAQEL
+BQAwFTETMBEGA1UEAxMKY2hlcGlhLmNvbTAeFw0yNDAzMjEwODUyMDRaFw0yNDAz
+MjIwODUyMzRaMBoxGDAWBgNVBAMTD3ZhdWx0LmNoZXBpYS5jaDCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAOZjmkzMckLx5B6950AoKrG15CrhADQh3j0J
+n/jSm6EKnQs1UHVSPCKJ6SG3Z0yLMxMOKvceZztUezKgsoGnvquUxQtMaGOH+7HI
+OWdBetEd/h7lo/Kt7ZlOWXUAylVe8rLGwDmPfJlrTJ3Qgl4HnruF8DB45i/KmqyM
++5pWkgZAZK4MooPM79ZvGKXAnOnECDSuolfS9uByjBY1GrOsg/ZO8Ih++b1oE2Ii
+XmNmDEsAzStrGHNqnm5o6cUEs7fCtNl4blvEHtylk41Q/WFU8u1pfX+RMc28ixbq
+nLP2uExDDUAgJNmgbp3hscw4tr037wrt0Tu6T9pCoEmlGPN78GUCAwEAAaOBjjCB
+izAOBgNVHQ8BAf8EBAMCA6gwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
+MB0GA1UdDgQWBBS41PXCPrKtRZi+mPfMDJeqiivO/jAfBgNVHSMEGDAWgBSIU1YV
+In5I8XnLzPPnvLF4HAF7tTAaBgNVHREEEzARgg92YXVsdC5jaGVwaWEuY2gwDQYJ
+KoZIhvcNAQELBQADggEBABOrgz2LqTJ+24l4ytPSGVPOlQjN0PjYwHxGxKbyzrn8
++iUDn03yJWbyvb6fs1WNlHwOmY+pkEJ+CEdfZkAgCK4XtQZc7QQhbbQryuVAyjSr
+pos+OdrrricQEHCq+EcTsNEL2WTmheQmAjLi2H/3VSd70MqVgD0llhtYoWjjzIx5
+Nt1wLPEAa2IrdJ1w32jhUx0PcSKCrLpBKCgnzswcYyS9AlKsvvuB4D4wNN6530vM
+gRrO9INT0CLQEU0BavmDYS4YtTLLTquhDfheY3FiFqnrXgvCNnFq560WPJ23B31C
+tzBm7PGs1iVU8ZO4DleCZIts/n4GClcrPCAoChEtGNQ=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/cross-signed-intermediate.csr b/cross-signed-intermediate.csr
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/example-com-cert.yaml b/example-com-cert.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a412d85d65b1dbf2320edbf8ca12f85bdc50d359
--- /dev/null
+++ b/example-com-cert.yaml
@@ -0,0 +1,12 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+  name: chepia-ch
+  namespace: default
+spec:
+  secretName: chepia-ch-tls
+  issuerRef:
+    name: vault-issuer
+  commonName: www.chepia.ch
+  dnsNames:
+  - www.chepia.ch
diff --git a/images/ca-expired.png b/images/ca-expired.png
new file mode 100644
index 0000000000000000000000000000000000000000..22d33933feac051987075ce00509d431e1d5c20c
Binary files /dev/null and b/images/ca-expired.png differ
diff --git a/images/cert-expired.png b/images/cert-expired.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e918f5002a11bbaf9c2074455481633bb685052
Binary files /dev/null and b/images/cert-expired.png differ
diff --git a/images/cert-manager.png b/images/cert-manager.png
new file mode 100644
index 0000000000000000000000000000000000000000..218f741b69b37326e48e59f580bd05435abbd60e
Binary files /dev/null and b/images/cert-manager.png differ
diff --git a/images/error-ttl.png b/images/error-ttl.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4382cc1ec354f828924911440154917999cbef4
Binary files /dev/null and b/images/error-ttl.png differ
diff --git a/images/vault-seal.md b/images/vault-seal.png
similarity index 100%
rename from images/vault-seal.md
rename to images/vault-seal.png
diff --git a/issuer-secret.yaml b/issuer-secret.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..386fdac06fe7aab31d083d6ce81be6c0ed36ebcd
--- /dev/null
+++ b/issuer-secret.yaml
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: issuer-token-lmzpj
+  annotations:
+    kubernetes.io/service-account.name: issuer
+type: kubernetes.io/service-account-token
diff --git a/keys/priv_vault.key b/keys/priv_vault.key
new file mode 100644
index 0000000000000000000000000000000000000000..d703c7e20fb5363694bca7742d29c1ec5d2c41f3
--- /dev/null
+++ b/keys/priv_vault.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA5mOaTMxyQvHkHr3nQCgqsbXkKuEANCHePQmf+NKboQqdCzVQ
+dVI8IonpIbdnTIszEw4q9x5nO1R7MqCygae+q5TFC0xoY4f7scg5Z0F60R3+HuWj
+8q3tmU5ZdQDKVV7yssbAOY98mWtMndCCXgeeu4XwMHjmL8qarIz7mlaSBkBkrgyi
+g8zv1m8YpcCc6cQINK6iV9L24HKMFjUas6yD9k7wiH75vWgTYiJeY2YMSwDNK2sY
+c2qebmjpxQSzt8K02XhuW8Qe3KWTjVD9YVTy7Wl9f5ExzbyLFuqcs/a4TEMNQCAk
+2aBuneGxzDi2vTfvCu3RO7pP2kKgSaUY83vwZQIDAQABAoIBAQDAzWfqj0mr5nxu
+kaP+F98q2zo3/BXMiu9OC0j51V5yVcx4/cP4erpieSFFmxNyhidW8gtYxPPFPfzf
+sIXSZUv2kUiZHPdbHAixjgsj8zNR35SzzJ/4Tj/BhUTt2px49z2KCTQCt6ahSZ9T
+jpQbFqtq6TrJhdO0+QuaDV3dmkcXvKMnDemH42dbNc8Z0aoPIDmBz3mSn4m3hKqD
+A62FELtoXZcYxR1Eq9kA9D2Ffq3JosGXRvXR9pbCHnQo2w3yaYxjB5HMw5IO4Iy5
+gsAQIbh6f+XHfhIRl8KdaZ+jp44qgYc+onLEHgkeJKvzjbHopRdkJCpZ7fGkjVpm
+a2HRGtVhAoGBAOyfdWiYrWsejOAmPJseBLLwS3X6RpfmxpOyvYzYVrolZae3IpQZ
+lVCP7hWvVBaqEMkyU1oKRJNwH2y/TRt4e6g/cyqnfwlksGHg/Sc6VqnES9E/kuu6
+SZw4FRAG/+3BrI2xjMpzYr34ZR8klnz5ymqb2U3o+HtJ9MXxMCwNPzE9AoGBAPlB
+dYI7PDNHL5rj6g/qqjfWTfAqZ2C9SeIRsCIslHWXdOESY+0Eqw3uFB8PNfI13zq6
+ylbANWkKG/7j6teh4pLA2MELW6rCGfMJeVDDlhhfbqMxXFgMVg/5FFzNaupA4IKu
+/CCKZKs8WP/4pxGMsI8v7G3cWaiZ2X32ppkTFN5JAoGBAI443dnrgriS2TvU37Kg
+XVSsJ78Wmh2tIQgfc9zXH3GtDqe65Ha91chhaknwYwtoVsSHkh/ZchRoXQsBBLiR
+N0oOMQufNzUPJxD9qUtNvk815Bg2LPmws5PJBafnfSaLtUpJQIViyyPBzA3m8OjX
+PrnLSNaSQ9/euNfMuxaPM79FAoGBAOWO+fB1KZ54Y0mduoXqM9a1EpasFwWrj44b
+iEIRGLGsScK4MzupXvi3WeS5F4/5OZxXR97ZqtcQrnPz6OereoZ6AabZFRWRKmEB
+Sq+tUmEkEztNTKTyx5hyZ+SIc31HPv5ctmwpyUlDjRxCH2w0TK+zDWao2BJFj19J
+eGnmfwOxAoGAD0oQiYv5IvshFF2k3cQTy9AoIKMHR4qS1Cn2pVdU2HyAb++uCu8b
+dyxCglt28ZuJRq5nGEoxXNjYjuBWiXonRbQ1thD7AxQGWeX0BzKI4Gs5ynqfAvTK
+bfsGgol94RyiPYFooWKltIiwhn0RATHRQwK3PGf7qraQFXYQdu1b+eo=
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/nginx-configmap.yaml b/nginx-configmap.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c61c5b3418e08992082e6704c8df288650f3e861
--- /dev/null
+++ b/nginx-configmap.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: nginx-configmap
+  namespace: default
+data:
+  index.html: |
+    <html>
+    <h1> Bienvenue sur l'intranet de CHEPIA  </h1>
+    <h3> Certificats gratos !! </h3>
+    </html>
\ No newline at end of file
diff --git a/nginx-service.yaml b/nginx-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1bdaa7f5851ce15c0d9d9be90bea9b9295120b0e
--- /dev/null
+++ b/nginx-service.yaml
@@ -0,0 +1,34 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: nginx
+spec:
+  ports:
+  - port: 443
+    targetPort: 80
+    protocol: TCP
+  selector:
+    app: nginx
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: nginx
+  annotations: 
+    cert-manager.io/cluster-issuer: chepia-ch
+spec:
+  ingressClassName: nginx
+  tls:
+  - hosts:
+    - chepia.ch
+    secretName: tls-secret
+  rules:  
+  - http:
+      paths:
+      - path: /
+        pathType: Prefix
+        backend:
+          service:
+            name: nginx
+            port:
+              number: 80
\ No newline at end of file
diff --git a/nginx.yaml b/nginx.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2f74c63e6e429383c5cc0dbe73346488094939a2
--- /dev/null
+++ b/nginx.yaml
@@ -0,0 +1,28 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nginx
+  labels:
+    app: nginx
+spec:
+  selector:
+    matchLabels:
+      app: nginx
+  template:
+    metadata:
+      labels:
+        app: nginx
+    spec:
+      containers:
+      - name: nginx
+        image: nginx:latest
+        ports:
+        - containerPort: 80
+        volumeMounts:
+        - name: nginx-index
+          mountPath: /usr/share/nginx/index.html
+          subPath: index.html
+      volumes:
+      - name: nginx-index
+        configMap: 
+          name: nginx-configmap
diff --git a/pki-script.sh b/pki-script.sh
new file mode 100644
index 0000000000000000000000000000000000000000..845215ac4a5e868cfdf0b10ffe9316c6fd86886f
--- /dev/null
+++ b/pki-script.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+set -euxo pipefail
+
+vault secrets enable pki
+vault secrets tune -max-lease-ttl=87600h pki
+vault write -field=certificate pki/root/generate/internal \
+   common_name="chepia" \
+   issuer_name="root" \
+   ttl=87600h > root_ca.crt
+vault write pki/config/cluster \
+   path=http://10.1.1.100:8200/v1/pki \
+   aia_path=http://10.1.1.100:8200/v1/pki
+vault write pki/roles/2023-servers \
+   allow_any_name=true \
+   no_store=false
+vault write pki/config/urls \
+   issuing_certificates={{cluster_aia_path}}/issuer/{{issuer_id}}/der \
+   crl_distribution_points={{cluster_aia_path}}/issuer/{{issuer_id}}/crl/der \
+   ocsp_servers={{cluster_path}}/ocsp \
+   enable_templating=true
+vault secrets enable -path=pki_int pki
+vault secrets tune -max-lease-ttl=43800h pki_int
+vault write -format=json pki_int/intermediate/generate/internal \
+   common_name="chepia Intermediate Authority" \
+   issuer_name="chepia-intermediate" \
+   | jq -r '.data.csr' > pki_intermediate.csr
+vault write -format=json pki/root/sign-intermediate \
+   issuer_ref="root" \
+   csr=@pki_intermediate.csr \
+   format=pem_bundle ttl="43800h" \
+   | jq -r '.data.certificate' > intermediate.cert.pem
+vault write pki_int/intermediate/set-signed certificate=@intermediate.cert.pem
+vault write pki_int/config/cluster \
+   path=http://10.1.1.100:8200/v1/pki_int \
+   aia_path=http://10.1.1.100:8200/v1/pki_int
+vault write pki_int/roles/learn \
+   issuer_ref="$(vault read -field=default pki_int/config/issuers)" \
+   allow_any_name=true \
+   max_ttl="720h" \
+   no_store=false
+vault write pki_int/config/urls \
+   issuing_certificates={{cluster_aia_path}}/issuer/{{issuer_id}}/der \
+   crl_distribution_points={{cluster_aia_path}}/issuer/{{issuer_id}}/crl/der \
+   ocsp_servers={{cluster_path}}/ocsp \
+   enable_templating=true
\ No newline at end of file
diff --git a/root-ca.pem b/root-ca.pem
new file mode 100644
index 0000000000000000000000000000000000000000..7e663cbe9945b7d813f4a5fd706b6eae59d1df5b
--- /dev/null
+++ b/root-ca.pem
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIUdngCFh4AZage9ffHfhb+6PAOWBswDQYJKoZIhvcNAQEL
+BQAwFTETMBEGA1UEAxMKY2hlcGlhLmNvbTAeFw0yNDA0MTEwODU4MTFaFw0yNDA0
+MjUwODU4NDFaMBUxEzARBgNVBAMTCmNoZXBpYS5jb20wggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCtlEn2mLiEheoyD35X6b/DdefcmNz7JY6f6LsaEOoD
+tsWLgwjaHfnmHAHmk19bUVZ3xMa41h9x5cgwKI5bwBCMMLlYCHJTg8t/ypmXujSo
+OHF0L1TWT9BFTEdNTDTaBzSr23TDlw9pH9lWjRPO/RUa+1ha2k2mcmC7kYdgBb4C
+FlIDyEtCDqnPG71lFyXlJng5d0P9O9E3rhqY9i5hda61hVVFecXbq9wYdpC3HTH6
+RTTODgYmplBP23pFE/nFYh7S6sAdem++nXmjd8d9ueuW6fj5J+y+jJvDZhs/MOUg
+Eo3zUmQ0bePTPCzYz4ypLeizxKTBUg8D00T/bmSJjgzfAgMBAAGjgeswgegwDgYD
+VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIlY8XuRG9Vt
+NWNhbOAkaJla4okdMB8GA1UdIwQYMBaAFIlY8XuRG9VtNWNhbOAkaJla4okdMDsG
+CCsGAQUFBwEBBC8wLTArBggrBgEFBQcwAoYfaHR0cDovLzEyNy4wLjAuMTo4MjAw
+L3YxL3BraS9jYTAVBgNVHREEDjAMggpjaGVwaWEuY29tMDEGA1UdHwQqMCgwJqAk
+oCKGIGh0dHA6Ly8xMjcuMC4wLjE6ODIwMC92MS9wa2kvY3JsMA0GCSqGSIb3DQEB
+CwUAA4IBAQB0/mlosXIWrXbWMgkhIgErJYwFfQGO7zx3gk0+flWqzW1hAUGZy31v
+diWRopZTOmsDI7bPBhdwBfKvyrueJxL36lOfndlYT5gAqT4s5EXztIA1kHvwidAA
+Xj8CIV7pgBUisW5lL1Zny0FfG6D5/xDlUH2gpmiDhb+4f5V4ThQ6m5gyw9UkaTUf
+6YRZOYu57i7YGAXCRCJszXWbiJS/QYMN5p8vVwalCQgw5NS1k/NmKq5tJDnz/F4n
+mEVfaGHvI8x7a1ryk1JV+fkAZluSHRAQAb4voLYpv2MmPJ+l5cCQPO5tmwHjD6Gm
+6sajcMYacVaEX7ew5EUosSxpgUVfut2e
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/vault-issuer.yaml b/vault-issuer.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..31eb9bdbd883c6f79c1264c1b65b73c6e2f2a413
--- /dev/null
+++ b/vault-issuer.yaml
@@ -0,0 +1,16 @@
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+  name: vault-issuer
+  namespace: default
+spec:
+  vault:
+    server: http://vault.default:8200
+    path: pki_int/sign/chepia-dot-ch
+    auth:
+      kubernetes:
+        mountPath: /v1/auth/kubernetes
+        role: issuer
+        secretRef:
+          name: issuer-token-lmzpj
+          key: token