|
|
@ -0,0 +1,60 @@ |
|
|
|
--- |
|
|
|
categories: vpn sysadmin security network |
|
|
|
title: Howto shellpki |
|
|
|
... |
|
|
|
|
|
|
|
[shellpki](https://forge.evolix.org/projects/shellpki/repository) est un script Shell pour gérer une petite [PKI](https://fr.wikipedia.org/wiki/Infrastructure_%C3%A0_cl%C3%A9s_publiques) en ligne de commandes. |
|
|
|
|
|
|
|
## Installation |
|
|
|
|
|
|
|
Cloner le repository dans le répertoire de votre choix, et créez un répertoire pour publier les certificats. Par exemple : |
|
|
|
|
|
|
|
~~~ |
|
|
|
# git clone https://forge.evolix.org/shellpki.git /usr/local/shellpki |
|
|
|
# mkdir /var/www/shellpki |
|
|
|
~~~ |
|
|
|
|
|
|
|
Ajuster le nom des répertoires choisis dans le script `shellpki.sh` : |
|
|
|
|
|
|
|
~~~ |
|
|
|
PREFIX=/usr/local/shellpki |
|
|
|
WWWDIR=/var/www/shellpki |
|
|
|
~~~ |
|
|
|
|
|
|
|
Éditer les paramètres de la section `[ req_distinguished_name ]` du fichier `openssl.cnf`, notamment : |
|
|
|
|
|
|
|
* `countryName_default` : mettre le code de votre pays |
|
|
|
* `stateOrProvinceName_default` : mettre votre état (pour la France, le numéro de département par exemple) |
|
|
|
* `localityName_default` : mettre le nom de votre ville |
|
|
|
* `0.organizationName_default` : mettre le nom de votres structure |
|
|
|
|
|
|
|
Enfin, initialiser la PKI avec : |
|
|
|
|
|
|
|
~~~ |
|
|
|
# sh shellpki.sh init |
|
|
|
~~~ |
|
|
|
|
|
|
|
Confirmer l'initialisation, et choisir la passphrase qui sera demandée à chaque création de nouveaux certificats, puis le _Common Name_ du certificat de l'autorité de certification. |
|
|
|
|
|
|
|
|
|
|
|
## Créer un nouveau certificat |
|
|
|
|
|
|
|
Pour créer une nouvelle clé privée et un certificat associé signé par la PKI : |
|
|
|
|
|
|
|
~~~ |
|
|
|
# sh shellpki.sh create |
|
|
|
~~~ |
|
|
|
|
|
|
|
Il faudra ensuite choisir un _Common Name_ unique et entrer la passphrase de la PKI. |
|
|
|
|
|
|
|
|
|
|
|
## Renouveller un certificat |
|
|
|
|
|
|
|
Il faut le révoquer, puis en recréer un : |
|
|
|
|
|
|
|
~~~ |
|
|
|
# sh shellpki.sh revoke |
|
|
|
# sh shellpki.sh create |
|
|
|
~~~ |
|
|
|
|
|
|
|
|