GNU/Linux >> Linux Esercitazione >  >> Linux

La creazione di Utente, Certificato e Firma di CSR per Lemur Certificate Manager

Dopo la corretta installazione di Lemur Certificate Manager, l'autorità di certificazione radice (CA) CFSSL è stata integrata con esso. Dopo la fase di integrazione, la CA locale è stata creata utilizzando il plug-in CFSSL nel lemure. Quindi, CFSSL è la CA radice nel nostro caso. Poiché sappiamo che il gestore di certificati Lemur è basato su Python, quindi in questo articolo, il nostro obiettivo è creare diversi script python che saranno utili per l'ulteriore sviluppo del progetto. In questo articolo, eseguiremo i seguenti script per interagire con Lemur utilizzando il terminale.

  • Creazione di autorità utilizzando CFSSL nella GUI di Lemur. Questa autorità CFSSL verrà utilizzata nei nostri script per generare il certificato. Ho impostato il titolo "myCA" dell'autorità CFSSL nella GUI. Questo titolo "myCA" verrà utilizzato nella generazione di certificati dal Lemur.

Utilizzo del plug-in CFSSL 

"myCA" mostrato nell'elenco dopo la creazione.

  • Utilizzo dello script Python per creare un utente con ruolo "Admin" utilizzando l'API Lemur e la richiesta viene inviata in formato JSON. (verifica il risultato dalla pagina utenti di Lemur GUI).
  • Creazione del certificato per il proprietario e l'utente specificati (verificare il risultato dalla pagina del certificato della GUI di lemur).
  • Generazione di chiavi private/pubbliche utilizzando Openssl nel terminale (i comandi sono riportati di seguito per generare la coppia di chiavi e quindi CSR) e
  • quindi usa il CSR (cat il file csr) nello script per generare il certificato dall'autorità doganale definita.

NOTA:

Tutti gli script Python invieranno una richiesta in formato JSON alla piattaforma Lemur, quindi modifica i parametri negli script secondo le tue esigenze. (come il nome dell'autorità CFSSL, il nome utente ecc.)

Script

Nello script seguente, la richiesta json verrà inviata a 192.168.1.7 (indirizzo IP della CA radice di Lemur e CFSSL). Dopo l'avvenuta autenticazione, verrà inviata un'altra richiesta per la creazione del nuovo utente.

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 = {'Authorization': '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]","active": "true", "roles": [{'id':1}or{'name': 'myRole'}]}),headers=Auth)
print test.json()
--------------------------------------------------------------------------------------------------

Nello script seguente viene inviata una richiesta all'autorità "myCA" per generare un nuovo certificato per l'utente "aa".

2. create_certifacte_by_lemur.py

#!/usr/bin/python
import json
import requests
##username/password to login lemur to perform the desired action
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 = {'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","organizationalUnit": "Operations"}),headers=Auth)
print cert_req.json() --------------------------------------------------------------------------------------------------

Lo scopo del seguente script è firmare la CSR dall'autorità di certificazione CFSSL. I comandi necessari di OpenSSL sono dati sopra per generare il csr per lo script.

Il comando seguente verrà utilizzato per firmare la CSR personalizzata. Questa funzionalità non è fornita nella GUI di Lemur per firmare la CSR utilizzando la nostra CA di configurazione locale.

comando di generazione coppia di chiavi:

openssl genrsa -out test.key 2048

Creazione della CSR utilizzando il test.key sopra generato:

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

Ora usa il comando "cat" per visualizzare il contenuto di test.csr e copiarlo nello script per generare il certificato sul CSR generato dall'utente. Un suggerimento importante sull'uso della CSR nello script è quello di rimuovere /r e utilizzare /n tranne che tra i tag di inizio/fine della 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 = {'Authorization': 'token %s' %login.json()["token"], 'content-type': 'application/json'}
#it is working
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 CERTIFICATE REQUEST-----
\nMIICxzCCAa8CAQAwgYExCzAJBgNVBAYTAkFVMQ0wCwYDVQQIDARQQUtJMRIwEAYD\nVQQHDAlJU0xBTUFCQUQxDTALBgNVBAoMBElJSUkxDDAKBgNVBAsMA0dHRzEQMA4G\nA1UEAwwHdXNlcjEyMzEgMB4GCSqGSIb3DQEJARYRdXNlcjEyM0BnbWFpbC5jb20w\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzzV4H1epwXODPs9AkioTv\nQLRtea12vCbZJhKkH59hWhDMjqNRkh8qc4R9gk83lingdWK+L35OkGNi6DG9zseh\ncVRf68sNpTeFg+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 CERTIFICATE REQUEST-----"}),headers=Auth)
print csr_req.json()
--------------------------------------------------------------------------------------------------

Conclusione

In questo articolo, vengono scritti diversi script Python per interagire con il progetto di gestione dei certificati Lemur. Questi script saranno utili agli sviluppatori per utilizzarli dalla CLI.


Linux
  1. Nix:un potente gestore di pacchetti per Linux e Unix

  2. Come generare una richiesta di firma del certificato (CSR) su Linux

  3. Qual è la differenza tra un utente normale e un utente di sistema?

  4. Creazione di utenti e gruppi "thesql", impostazioni di proprietà?

  5. Come generare una chiave e una CSR in cPanel per il tuo certificato SSL

Come generare una richiesta di firma del certificato (CSR) con OpenSSL

Integrazione di CFSSL con il Lemur Certificate Manager

Installazione di Vundle:il Plugin Manager per Vim

Impossibile firmare CSR con la chiave Ca Root?

Le 5 migliori distribuzioni Linux per sviluppatori e programmatori

Comandi Linux avanzati per utenti esperti