"Choose wisely"
Debian Server
Scripting
API
Debian LVM
DevOps
Certificats
Raspberry
Electronique
Infos diverses
VMWare
Et ici c'est la sidebar, oui, j'oublie toujours le nom alors je le rajoute.
Debian Server
Scripting
API
Debian LVM
DevOps
Certificats
Raspberry
Electronique
Infos diverses
VMWare
Et ici c'est la sidebar, oui, j'oublie toujours le nom alors je le rajoute.
Une version plus évolué se trouve ICI
Dans le script suivant, je crée un certificat root auto signé, un certificat serveur et un certificat client, le tout avec l'architecture nécéssaire a une pki sous debian 9 par defaut.
#!/bin/bash # Choix du domaine qui servira de racine domaine=test.draak.fr # Nombre de jour de validité nbjour=365 #Les informations standard pour la génération des certificats country=FR state=BZH location=BZH organisation=BARBED organisationunit=IT commonname=$domaine # Nom du de l'utilisateur pour la creation du client clientname=Draak # On se déplace dans le dossier qui va accueillir notre petite PKI cd /etc/ssl # Création du dossier et on s'y déplace mkdir $domaine cd $domaine # Création des dossier et fichier nécéssaire a la PKI mkdir -p demoCA/newcerts mkdir -p demoCA/certs mkdir -p demoCA/crl touch demoCA/index.txt touch demoCA/index.txtattr # Génération du certificat racine echo "#-----Certificat Racine-----------------------------------------------#" openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.$domaine.key -sha256 -days $nbjour -out rootCA.$domaine.pem -config /etc/ssl/openssl.cnf -subj "/C=$country/ST=$state/L=$state/O=$organisation/OU=$organisationunit/CN=$commonname" # Génération du certificat serveur echo "#-----Certifcat Serveur-----------------------------------------------#" # On commence par générer une clef openssl genrsa -out server.$domaine.key 4096 # Maintenant le Certificate Signing Request (CSR) openssl req -new -key server.$domaine.key -out server.$domaine.csr -config /etc/ssl/openssl.cnf -subj "/C=$country/ST=$state/L=$state/O=$organisation/OU=$organisationunit/CN=$commonname" # Et maintenant le certificat signé par le certificate authority openssl x509 -req -in server.$domaine.csr -CA rootCA.$domaine.pem -CAkey rootCA.$domaine.key -CAcreateserial -out server.$domaine.pem -days $nbjour -sha256 # Génération du certificat client echo "#-----Certifcat Client-----------------------------------------------#" # On commence par générer une clef puis le CSR openssl genrsa -out client.$domaine.key 4096 openssl req -new -key client.$domaine.key -out client.$domaine.csr -config /etc/ssl/openssl.cnf -subj "/C=$country/ST=$state/L=$state/O=$organisation/OU=$organisationunit/CN=$clientname" # Le certificat signé par le CA encore une fois openssl ca -create_serial -out client.$domaine.pem -days $nbjour -keyfile rootCA.$domaine.key -cert rootCA.$domaine.pem -config /etc/ssl/openssl.cnf -infiles client.$domaine.csr # Export de la clef et du certif dans un package qui vous demandera un mot de passe a la génération. C'est ce dernier qui sera exporté. openssl pkcs12 -export -in client.$domaine.pem -inkey client.$domaine.key -out client.$domaine.p12 -name $clientname
Voici a quoi devrait ressembler le résultat.
root@test.tld:/etc/ssl/test.draak.fr# tree . ├── client.test.draak.fr.csr ├── client.test.draak.fr.key ├── client.test.draak.fr.p12 ├── client.test.draak.fr.pem ├── demoCA │ ├── certs │ ├── crl │ ├── index.txt │ ├── index.txtattr │ ├── index.txt.attr │ ├── index.txt.old │ ├── newcerts │ │ └── BBA6422D56C83269.pem │ └── serial ├── rootCA.srl ├── rootCA.test.draak.fr.key ├── rootCA.test.draak.fr.pem ├── server.test.draak.fr.csr ├── server.test.draak.fr.key └── server.test.draak.fr.pem 4 directories, 16 files
Voici un morceau de contenue d'un vhost apache
# Cette partie est dédié au certificat server SSLEngine on SSLCertificateFile "/etc/ssl/test.draak.fr/server.test.draak.fr.pem" SSLCertificateKeyFile "/etc/ssl/test.draak.fr/server.test.draak.fr.key" # Celle ci est pour la partie client SSLVerifyClient require SSLCACertificateFile "/etc/ssl/test.draak.fr/rootCA.test.draak.fr.pem"
Et vous pourrez ajouter le client.test.draak.fr.p12 a votre navigateur.
Voici un exemple avec firefox. On commence à aller dans les options puis: