# Créer le certificat client fiable

Utilisez le keytool (fourni avec la JDK) pour manipuler les clés et certificats.

## Procédure

1. Créer deux paires de clés :
   1. une paire pour le serveur (utilisée pour le SSL)
   2. une paire comme exemple côté client (utilisée pour faire confiance ("trust") au certificat)

      La paire de clés côté client doit être créée pour chaque client.
   ```
   mkdir -p etc/keystores
   cd etc/keystores
   keytool -genkey -keyalg RSA -validity 365 -alias serverkey -keypass password -storepass password -keystore keystore.jks
   keytool -genkey -keyalg RSA -validity 365 -alias clientkey -keypass password -storepass password -keystore client.jks
   ```

   Ces clés sont auto-signées. Dans un système de production, vous devez utiliser une autorité de certification.
2. Exportez le certificat client à importer dans le keystore du serveur :
   ```
   keytool -export -rfc -keystore client.jks -storepass password -alias clientkey -file client.cer
   keytool -import -trustcacerts -keystore keystore.jks -storepass password -alias clientkey -file client.cer
   ```
3. Vérifiez que le certificat client est fiable pour le keystore du serveur :
   ```
   keytool -list -v -keystore keystore.jks
   ...
   Alias name: clientkey
   Creation date: Aug 28, 2018
   Entry type: trustedCertEntry
   ...
   ```
4. Supprimez le certificat client.cer.