GNU/Linux >> Tutoriels Linux >  >> Linux

La création d'Utilisateur, de Certificat et de Signature de CSR pour Lemur Certificate Manager

Après l'installation réussie du gestionnaire de certificats Lemur, CFSSL Root Certification Authority (CA) y a été intégré. Après l'étape d'intégration, une autorité de certification locale a été créée à l'aide du plugin CFSSL dans le lemur. Ainsi, CFSSL est l'autorité de certification racine dans notre cas. Comme nous savons que le gestionnaire de certificats Lemur est basé sur Python, nous nous concentrons donc dans cet article sur la création de différents scripts Python qui seront utiles pour le développement ultérieur du projet. Dans cet article, nous allons exécuter les scripts suivants pour interagir avec Lemur à l'aide du terminal.

  • Création d'une autorité à l'aide de CFSSL dans l'interface graphique de Lemur. Cette autorité CFSSL sera utilisée dans nos scripts pour générer le certificat. J'ai défini le titre "myCA" de l'autorité CFSSL dans l'interface graphique. Ce titre "myCA" sera utilisé dans la génération des certificats du Lemur.

Utilisation du plug-in CFSSL 

"myCA" affiché dans la liste après la création.

  • Utilisation du script Python pour créer un utilisateur avec le rôle "Admin" à l'aide de l'API Lemur et la demande est envoyée au format JSON. (vérifiez le résultat sur la page des utilisateurs de Lemur GUI).
  • Création d'un certificat pour le propriétaire et l'utilisateur spécifiés (vérifiez le résultat à partir de la page de certificat de l'interface graphique de lemur).
  • génération de clés privées/publiques à l'aide d'Openssl dans le terminal (les commandes sont données ci-dessous pour générer la paire de clés, puis CSR) et
  • puis utilisez le CSR (cat le fichier csr) dans le script pour générer le certificat à partir de l'autorité personnalisée définie.

REMARQUE :

Tous les scripts python enverront une requête au format JSON à la plate-forme Lemur, veuillez donc modifier les paramètres dans les scripts en fonction de vos besoins. (comme votre nom d'autorité CFSSL, nom d'utilisateur, etc.)

Scripts

Dans le script suivant, la requête json sera envoyée à 192.168.1.7 (adresse IP de l'autorité de certification racine Lemur et CFSSL). Après l'authentification réussie, une autre demande sera envoyée pour la création du nouvel utilisateur.

1. create_user_using_admin_role.py

#!/usr/bin/python
import json import requests
login =requests.request("POST","http://192.168.1.7/api/1/auth/login" ,data=json.dumps({'username':"lemur", 'password':"lemur"}),headers={'content-type':'application/json'}) print login.json() Auth ={'Autorisation' :'token %s' %login.json()["token"], 'content-type' :'application/json'}
test =requests.request("POST","http ://192.168.1.7/api/1/users",data=json.dumps({'username' :"aa", 'aaa' :"aaa" ,"email":"[email protected]","actif ":"true", "roles":[{'id':1}or{'name':'myRole'}]}),headers=Auth)
print test.json()
-------------------------------------------------- ------------------------------------------------

Dans le script suivant, une demande est envoyée à l'autorité "myCA" pour générer un nouveau certificat pour l'utilisateur "aa".

2. create_certifacte_by_lemur.py

#!/usr/bin/python
import json
import requests
##username/password pour se connecter à lemur afin d'effectuer l'action souhaitée
login =requests.request( "POST","http://192.168.1.7/api/1/auth/login",data=json.dumps({'nom d'utilisateur' :"lémurien", 'mot de passe' :"lémurien"}),headers={ 'content-type' :'application/json'})
print login.json()Auth ={'Authorization' :'token %s' %login.json()["token"], 'content- type' :'application/json'}cert_req =requests.request("POST","http://192.168.1.7/api/1/certificates",data=json.dumps({"owner":"[email protected ]","commonName":"aa.example.net","country":"AU","replacements":[{"id":1 }],"notify":"true","validityEnd":" 2026-01-01T08:00:00.000Z", "authority":{"name":"myCA" }, "organization":"test.", "location":"Los Gataaos", "state":"Caldifornia ", "user":{ "username":"aa","active":"true","email":"[email protected]"}, "roles":[{"id":1, "description" :"admin role", "name":"[email protected]"}],"validityStart":"2018-11-11T04:19:48.000Z","organ izationalUnit":"Operations"}),headers=Auth)
print cert_req.json()--------------------------- -------------------------------------------------- ---------------------

Le but du script suivant est de signer le CSR de l'autorité de certification CFSSL. Les commandes nécessaires d'OpenSSL sont données ci-dessus pour générer le csr pour le script.

La commande suivante sera utilisée pour signer le CSR personnalisé. Cette fonctionnalité n'est pas fournie dans l'interface graphique de Lemur pour signer le CSR à l'aide de notre autorité de certification configurée localement.

commande de génération de paire de clés :

openssl genrsa -out test.key 2048

Création CSR en utilisant le test.key généré ci-dessus :

openssl req -new -sha256 -key test.key -out test.csr

Utilisez maintenant la commande "cat" pour afficher le contenu de test.csr et copiez-le dans le script pour générer le certificat sur le CSR généré par l'utilisateur. Un indice important sur l'utilisation de CSR dans le script est de supprimer /r et d'utiliser /n sauf entre les balises de démarrage/d'arrêt de CSR.

3. create_certificate_using_local_csr.py

#!/usr/bin/python
import json
import requests
##change username/password here
login =requests.request("POST","http ://192.168.1.7/api/1/auth/login",data=json.dumps({'username':"lemur", 'password':"lemur"}),headers={'content-type' :'application/json'})
print login.json()
Auth ={'Autorisation' :'token %s' %login.json()["token"], 'content-type' :'application/json'}
#il fonctionne
csr_req =requests.request("POST","http://192.168.1.7/api/1/certificates",data=json.dumps ({"owner":"[email protected]","commonName":"aa.eaaxample.net","authority":{"name":"myCA" },"csr":"-----BEGIN CERTIFICAT DEMANDE -----
\ nMIICxzCCAa8CAQAwgYExCzAJBgNVBAYTAkFVMQ0wCwYDVQQIDARQQUtJMRIwEAYD \ nVQQHDAlJU0xBTUFCQUQxDTALBgNVBAoMBElJSUkxDDAKBgNVBAsMA0dHRzEQMA4G \ nA1UEAwwHdXNlcjEyMzEgMB4GCSqGSIb3DQEJARYRdXNlcjEyM0BnbWFpbC5jb20w \ nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzzV4H1epwXODPs9AkioTv \ nQLRtea12vCbZJhKkH59hWhDMjqNRkh8qc4R9gk83lingdWK + L35OkGNi6DG9zseh \ ncVRf68 sNpTeFg + eXGRmEdTallBqPd5NS3JlMmXxbLEWrELiw4gPp3JpNAzoYZUxb \ n4Uk4ho9EN8Fd1 / lGmubvyvkYJ1mbpsK1LfaFohGYu + 7nMvU4tn1Av / zyTGcIikVu \ nU4UA23jKAMzjlSKdTJH / nmqvMi2wltRtb7DNpI / 5HAancrnyEzeXC5IN + SPV / 5OH \ nxdxCyAkp1kDrWhC2yvoffzipoqEFESWmfFrJ8riTiQZqOIWqW + ZasZtu4GDqm4CL \ nAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAH / PKs5kTmMPRW2Icy4Yj7vdzjpaA \ n / r1glm0voMR5ytPo0 + lXHDTQwt / 1ObQvr8FnT2z8iqRvfXiv6WWruLzwEEVWsCFL \ ny7RAa + K0wqP23CfxzCy / S4ZwCcR + wQb3UnWui8eMxgU1IBjupCR9kPFhL // aA + lm \ njBi5YruBgX7MdlW + AlkuVDljzXm1orFYZFzS7OlybH5jh / B3Z2ygbC ++ Y24XI3qm \ n5IYpsxFbOmrj7y3IXN / 990305blCcKhpaG + FMTKhNqkXMYKYsZseIO3xdO4Ufjl / \ nqS2jjsE1sFxmKbabhguhTT06oGimT + TbgoYVkc0DWhIdLcrOdxhGsFwdqg ==\ n ----- END DEMANDE dE CERTIFICAT ----- "}), en-têtes =Auth)
imprimer csr_req.json()
------------------------------------------------------- -------------------------------------------------- -------

Conclusion

Dans cet article, différents scripts python sont écrits pour interagir avec le projet de gestionnaire de certificats Lemur. Ces scripts seront utiles aux développeurs pour l'utiliser à partir de la CLI.


Linux
  1. Comment générer une demande de signature de certificat (CSR) sous Linux

  2. La différence entre compte utilisateur et compte de service ?

  3. Impossible de signer Csr avec la clé racine Ca ?

  4. Quelle est la différence entre un utilisateur normal et un utilisateur système ?

  5. Blender - L'outil de création 3D parfait pour Linux

Comment générer une demande de signature de certificat (CSR) avec OpenSSL

Intégration de CFSSL avec le Lemur Certificate Manager

Installer Vundle :le gestionnaire de plugins pour Vim

Les 5 meilleures distributions Linux pour les développeurs et les programmeurs

Commandes Linux avancées pour l'utilisateur expérimenté

Quelle est la raison pour laquelle rmdir(1) et rm(1) coexistent ?