GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Erstellung von Benutzer, Zertifikat und Signierung von CSR für Lemur Certificate Manager

Nach der erfolgreichen Installation des Lemur-Zertifikatmanagers wurde die CFSSL-Stammzertifizierungsstelle (CA) darin integriert. Nach dem Integrationsschritt wurde eine lokale Zertifizierungsstelle mit dem CFSSL-Plugin im Lemur erstellt. CFSSL ist also in unserem Fall die Stammzertifizierungsstelle. Da wir wissen, dass der Lemur-Zertifikatsmanager auf Python basiert, konzentrieren wir uns in diesem Artikel darauf, verschiedene Python-Skripte zu erstellen, die für die weitere Entwicklung des Projekts nützlich sind. In diesem Artikel werden wir die folgenden Skripte ausführen, um mit Lemur über das Terminal zu interagieren.

  • Erstellung von Autorität unter Verwendung von CFSSL in der Lemur-GUI. Diese CFSSL-Autorität wird in unseren Skripten verwendet, um das Zertifikat zu generieren. Ich habe den Titel "myCA" der CFSSL-Autorität in der GUI festgelegt. Dieser Titel „myCA“ wird bei der Generierung von Zertifikaten aus dem Lemur verwendet.

CFSSL-Plug-in verwenden 

"myCA" wird nach der Erstellung in der Liste angezeigt.

  • Verwenden eines Python-Skripts zum Erstellen eines Benutzers mit der Rolle „Admin“ mithilfe der Lemur-API, und die Anfrage wird im JSON-Format gesendet. (Überprüfen Sie das Ergebnis auf der Benutzerseite der Lemur-GUI).
  • Erstellung des Zertifikats für den angegebenen Eigentümer und Benutzer (Überprüfen Sie das Ergebnis auf der Zertifikatsseite der Lemur-GUI).
  • Generierung privater/öffentlicher Schlüssel mit Openssl im Terminal (Befehle werden unten angegeben, um das Schlüsselpaar und dann CSR zu generieren) und
  • Verwenden Sie dann die CSR (cat the csr-Datei) im Skript, um das Zertifikat von der definierten benutzerdefinierten Autorität zu generieren.

HINWEIS:

Alle Python-Skripte senden eine Anfrage im JSON-Format an die Lemur-Plattform, also ändern Sie bitte die Parameter in den Skripten gemäß Ihren Anforderungen. (wie Ihr Name der CFSSL-Behörde, Benutzername usw.)

Skripte

Im folgenden Skript wird die json-Anforderung an 192.168.1.7 (IP-Adresse der Lemur- und CFSSL-Root-CA) gesendet. Nach erfolgreicher Authentifizierung wird eine weitere Anfrage zur Erstellung des neuen Benutzers gesendet.

1. create_user_using_admin_role.py

#!/usr/bin/python
json-Importanfragen importieren
login =request.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 ={'Autorisierung':'Token %s' %login.json()["Token"], 'Inhaltstyp':'application/json'}
test =reviews.request("POST","http ://192.168.1.7/api/1/users",data=json.dumps({'username':"aa", 'aaa':"aaa" ,"email":"[email protected]","active ":"true", "roles":[{'id':1}or{'name':'myRole'}]}),headers=Auth)
print test.json()
-------------------------------------------------- ------------------------------------------------

Im folgenden Skript wird eine Anfrage an die Autorität „myCA“ gesendet, um ein neues Zertifikat für den Benutzer „aa“ zu generieren.

2. create_certifacte_by_lemur.py

#!/usr/bin/python
json importieren
Anforderungen importieren
##Benutzername/Passwort zum Anmelden bei Lemur, um die gewünschte Aktion auszuführen
login =request.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 ={'Authorization':'token %s' %login.json()["token"], 'content- type':'application/json'}cert_req =reviews.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", "Behörde":{"Name":"myCA" }, "Organisation":"Test.", "Standort":"Los Gataaos", "Staat":"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()---------------------- -------------------------------------------------- ---------------------

Der Zweck des folgenden Skripts besteht darin, die CSR von der CFSSL-Zertifizierungsstelle zu signieren. Notwendige Befehle von OpenSSL sind oben angegeben, um die CSR für das Skript zu generieren.

Der folgende Befehl wird verwendet, um die benutzerdefinierte CSR zu signieren. Diese Funktionalität wird in der Lemur-GUI nicht bereitgestellt, um die CSR mit unserer lokal eingerichteten Zertifizierungsstelle zu signieren.

Befehl zum Generieren des Schlüsselpaars:

openssl genrsa -out test.key 2048

CSR-Erstellung mit dem oben generierten test.key:

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

Verwenden Sie nun den Befehl „cat“, um den Inhalt von test.csr anzuzeigen, und kopieren Sie ihn in das Skript, um das Zertifikat auf der benutzergenerierten CSR zu generieren. Wichtiger Hinweis zur Verwendung von CSR im Skript ist, /r zu entfernen und /n zu verwenden, außer zwischen Start-/Stopp-Tags von CSR.

3. create_certificate_using_local_csr.py

#!/usr/bin/python
json importieren
Anfragen importieren
##Benutzername/Passwort hier ändern
login =request.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 ={'Authorization':'token %s' %login.json()["token"], 'content-type' :'application/json'}
#es funktioniert
csr_req =reviews.request("POST","http://192.168.1.7/api/1/certificates",data=json.dumps ({"Eigentümer":"[email protected]","commonName":"aa.eaaxample.net","authority":{"name":"myCA" },"csr":"-----BEGIN ZERTIFIKAT REQUEST -----
\ 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 ZERTIFIKAT REQUEST ----- "}), headers =Auth)
Druck csr_req.json()
-------------------------------------------------- -------------------------------------------------- -------

Schlussfolgerung

In diesem Artikel werden verschiedene Python-Skripte geschrieben, um mit dem Lemur Certificate Manager-Projekt zu interagieren. Diese Skripte sind für die Entwickler hilfreich, um sie über die CLI zu verwenden.


Linux
  1. Nix – Ein leistungsstarker Paketmanager für Linux und Unix

  2. So generieren Sie eine Zertifikatsignierungsanforderung (CSR) unter Linux

  3. Was ist der Unterschied zwischen einem normalen Benutzer und einem Systembenutzer?

  4. Blender – Das perfekte 3D-Erstellungstool für Linux

  5. Fedora Media Writer – Ein notwendiges Tool für den Fedora-Benutzer

So generieren Sie mit OpenSSL einen Certificate Signing Request (CSR).

Integration von CFSSL mit dem Lemur Certificate Manager

Installieren von Vundle:Der Plugin-Manager für Vim

Die 5 besten Linux-Distributionen für Entwickler und Programmierer

Fortgeschrittene Linux-Befehle für den Power User

Wie bekomme ich nur den Benutzer, die PID und den Befehl, der für einen bestimmten Prozess ausgeführt wird? (Ubuntu 11.10)