Skip to content
Snippets Groups Projects
Commit 4a3e9062 authored by Muff Léo's avatar Muff Léo
Browse files

updated mise en page

parent fd542afe
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
{ \huge \bfseries Créer une autorité de certification avec Vault et Kubernetes}\\[0.4cm] { \huge \bfseries Créer une autorité de certification avec Vault et Kubernetes}\\[0.4cm]
\HRule \\[1.5cm] \HRule \\[1.5cm]
\textsc{\large \textcolor{red}{Rapport intermédiaire}}\\[0.5cm]
\begin{minipage}{0.4\textwidth} \begin{minipage}{0.4\textwidth}
\begin{flushleft} \large \begin{flushleft} \large
\emph{Auteurs:}\\ \emph{Auteurs:}\\
...@@ -36,10 +38,28 @@ Léo \textsc{Muff}\\ ...@@ -36,10 +38,28 @@ Léo \textsc{Muff}\\
Dans le cadre du cours "Ateliers en sécurité", il nous a été demandé de créer une entreprise fictive qui utilise une infrastructure à clef publique, ou PKI (Public Key Infrastructure), pour sécuriser ses services. Ce document décrit le scénario choisi, l'organisation de notre entreprise fictive et les différents composants physiques et logiciels utilisés pour mettre en place notre infrastructure. Il décrit aussi la politique de certification utilisée pour celle-ci. Dans le cadre du cours "Ateliers en sécurité", il nous a été demandé de créer une entreprise fictive qui utilise une infrastructure à clef publique, ou PKI (Public Key Infrastructure), pour sécuriser ses services. Ce document décrit le scénario choisi, l'organisation de notre entreprise fictive et les différents composants physiques et logiciels utilisés pour mettre en place notre infrastructure. Il décrit aussi la politique de certification utilisée pour celle-ci.
# Idée principale ## Idée principale
Nous avons choisi de concevoir une entreprise fournissant une version simplifiée des services proposés par une autorité de certification comme Let's Encrypt. Notre infrastructure comprendra donc sa propre autorité de certification qui permettra d'émettre des certificats pour nos services ainsi que pour les services publiques de nos clients. La gestion de ces certificats pourra ensuite être automatisée grâce au protocole ACME (Automated Certificate Management Environment). Nous avons choisi de concevoir une entreprise fournissant une version simplifiée des services proposés par une autorité de certification comme Let's Encrypt. Notre infrastructure comprendra donc sa propre autorité de certification qui permettra d'émettre des certificats pour nos services ainsi que pour les services publiques de nos clients. La gestion de ces certificats pourra ensuite être automatisée grâce au protocole ACME (Automated Certificate Management Environment).
## Répartition des tâches
- Recherches théoriques : Élio Marconi
- Mise en place de l'infrastructure : Flavio Morrone, Léo Muff
- Rédaction de la documentation : Léo Muff
## Avancement
- [x] Installation de Microk8s et Vault
- [x] Configuration initiale de Vault
- [x] Création de l'autorité racine et de l'autorité intermédiaire
- [x] Configuration de Cert-manager
- [x] Mise en place d'un service test en https
- [x] Mise à jour des certificats
- [x] Mise en place d'ACME
- [ ] Mise en place d'un service DNS pour valider les challenges ACME
- [ ] Mise en place d'un script pour permettre une utilisation simplifiée de notre service ACME.
\newpage \newpage
# Description de l'infrastructure à clef publique # Description de l'infrastructure à clef publique
...@@ -79,6 +99,8 @@ Notre autorité racine émettra les certificats deux deux autorités intermédia ...@@ -79,6 +99,8 @@ Notre autorité racine émettra les certificats deux deux autorités intermédia
# Mise en place de l'infrastructure : # Mise en place de l'infrastructure :
→ Les commandes commençant par `microk8s` sont à exécuter dans le terminal de la machine hôte. Celles commençant par `vault` doivent être exécutées dans le container de Vault.
## Installation Vault sur MicroK8s ## Installation Vault sur MicroK8s
Les commandes suivantes permettent d'installer microk8s et d'y déployer une instance de Vault. Elles ont été testées sur un système Ubuntu 22.04, et peuvent varier selon le système utilisé. Les commandes suivantes permettent d'installer microk8s et d'y déployer une instance de Vault. Elles ont été testées sur un système Ubuntu 22.04, et peuvent varier selon le système utilisé.
...@@ -519,7 +541,6 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon ...@@ -519,7 +541,6 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
``` ```
\newpage
### Remplacer l'émetteur par défaut ### Remplacer l'émetteur par défaut
...@@ -527,6 +548,8 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon ...@@ -527,6 +548,8 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
vault write pki/root/replace default=root-2 vault write pki/root/replace default=root-2
``` ```
\newpage
### Signer l'autorité intermédiaire avec notre nouveau certificat racine ### Signer l'autorité intermédiaire avec notre nouveau certificat racine
```bash ```bash
...@@ -547,7 +570,8 @@ vault write -format=json pki/issuer/root-2/sign-intermediate \ ...@@ -547,7 +570,8 @@ vault write -format=json pki/issuer/root-2/sign-intermediate \
vault write pki_int/intermediate/set-signed certificate=@cross-signed-intermediate.crt vault write pki_int/intermediate/set-signed certificate=@cross-signed-intermediate.crt
``` ```
## ACME setup ## Mise en place du service ACME
### terminal : ### terminal :
```bash ```bash
...@@ -557,16 +581,17 @@ vault write /sys/mounts/pki_int/tune \ ...@@ -557,16 +581,17 @@ vault write /sys/mounts/pki_int/tune \
``` ```
### GUI : ### GUI :
- go to the intermediate certificate configuration page - Aller à la page de configuration de l'autorité intermédiaire.
- add url `http://127.0.0.1:8200/v1/pki_int` to AIA path and Mount's API path - Ajouter l'URL`http://127.0.0.1:8200/v1/pki_int`au champ AIA path et Mount's API path
- Tick "Enable ACME" - Cocher "Enable ACME"
- save - Sauver la configuration
## Add ACME to cert-manager \newpage
## Connecter Cert-manager au service ACME
https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-cert-manager
### add issuer ### Ajout d'un émetteur
- Création du fichier de configuration acme.yaml - Création du fichier de configuration acme.yaml
...@@ -599,17 +624,18 @@ spec: ...@@ -599,17 +624,18 @@ spec:
- **Infrastructure à clef publique ou PKI (Public Key Infrastructure)** : Une PKI est un ensemble de processus basés sur l'utilisation de certificats qui permettent de chiffrer et d'authentifier les communications entre utilisateurs et services ou de service à service. - **Infrastructure à clef publique ou PKI (Public Key Infrastructure)** : Une PKI est un ensemble de processus basés sur l'utilisation de certificats qui permettent de chiffrer et d'authentifier les communications entre utilisateurs et services ou de service à service.
- **Politique de certification** : Ensemble de décisions qui définissent les caractéristique des certificats émis. La politique de certification définit le temps de vie des certificats, la chaîne de confiance, les politiques de révocations, etc. - **Politique de certification** : Ensemble de décisions qui définissent les caractéristique des certificats émis. La politique de certification définit le temps de vie des certificats, la chaîne de confiance, les politiques de révocations, etc.
- **Autorité de certification ou CA (Certificate Authority)** : Une autorité de certification est un organisme qui agit comme tiers de confiance. La CA est responsable de l'émission de certificats et de leur validation. Pour être considérée comme un tiers de confiance valide, l'autorité doit être reconnue par les principaux navigateurs et systèmes d'exploitation. - **Autorité de certification ou CA (Certificate Authority)** : Une autorité de certification est un organisme qui agit comme tiers de confiance. La CA est responsable de l'émission de certificats et de leur validation. Pour être considérée comme un tiers de confiance valide, l'autorité doit être reconnue par les principaux navigateurs et systèmes d'exploitation.
- **Chaîne de confiance** - **Chaîne de confiance** : Hiérarchie utilisée par les certificats pour vérifier la validité de l'émetteur.
# Références # Références
https://developer.hashicorp.com/vault/tutorials/secrets-management/pki-engine?variants=vault-deploy%3Aselfhosted - https://developer.hashicorp.com/vault/tutorials/secrets-management/pki-engine?variants=vault-deploy%3Aselfhosted
https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-cert-manager - https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-cert-manager
https://developer.hashicorp.com/vault/docs/concepts/seal - https://developer.hashicorp.com/vault/docs/concepts/seal
https://fr.wikipedia.org/wiki/Autorit%C3%A9_de_certification - https://fr.wikipedia.org/wiki/Autorit%C3%A9_de_certification
https://fr.wikipedia.org/wiki/Certificat_%C3%A9lectronique - https://fr.wikipedia.org/wiki/Certificat_%C3%A9lectronique
https://en.wikipedia.org/wiki/Certificate_policy - https://en.wikipedia.org/wiki/Certificate_policy
https://en.wikipedia.org/wiki/Key_management - https://en.wikipedia.org/wiki/Key_management
https://www.digicert.com/fr/what-is-pki - https://www.digicert.com/fr/what-is-pki
https://www.ssldragon.com/blog/best-practices-to-store-the-private-key/ - https://www.ssldragon.com/blog/best-practices-to-store-the-private-key/
https://www.thesslstore.com/blog/what-is-a-key-management-service-key-management-services-explained/ - https://www.thesslstore.com/blog/what-is-a-key-management-service-key-management-services-explained/
https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html#storage - https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment