GNU/Linux >> Tutoriales Linux >  >> Linux

La creación de Usuario, Certificado y Firma de CSR para Lemur Certificate Manager

Después de la instalación exitosa del administrador de certificados Lemur, se integró con él la Autoridad de Certificación Raíz (CA) CFSSL . Después del paso de integración, se creó la CA local utilizando el complemento CFSSL en el lémur. Entonces, CFSSL es la CA raíz en nuestro caso. Como sabemos que el administrador de certificados de Lemur está basado en Python, en este artículo, nuestro enfoque es crear diferentes scripts de Python que serán útiles para un mayor desarrollo en el proyecto. En este artículo, realizaremos los siguientes scripts para interactuar con Lemur usando la terminal.

  • Creación de autoridad mediante CFSSL en la interfaz gráfica de usuario de Lemur. Esta autoridad CFSSL se utilizará en nuestros scripts para generar el certificado. He establecido el título "myCA" de la autoridad CFSSL en la GUI. Este título "myCA" se utilizará en la generación de certificados de Lemur.

Uso del complemento CFSSL 

"myCA" se muestra en la lista después de la creación.

  • Uso de la secuencia de comandos de Python para crear un usuario con la función "Administrador" mediante la API de Lemur y la solicitud se envía en formato JSON. (verifique el resultado de la página de usuarios de Lemur GUI).
  • Creación de un certificado para el propietario y el usuario especificados (verifique el resultado en la página del certificado de la interfaz gráfica de usuario de lemur).
  • generación de claves privadas/públicas usando Openssl en la terminal (a continuación se proporcionan comandos para generar el par de claves y luego CSR) y
  • luego use el CSR (cat the csr file) en el script para generar el certificado de la autoridad personalizada definida.

NOTA:

Todos los scripts de python enviarán una solicitud en formato JSON a la plataforma Lemur, así que cambie los parámetros en los scripts según sus requisitos. (como su nombre de autoridad CFSSL, nombre de usuario, etc.)

Guiones

En el siguiente script, la solicitud json se enviará a 192.168.1.7 (dirección IP de la CA raíz de Lemur y CFSSL). Después de la autenticación exitosa, se enviará otra solicitud para la creación del nuevo usuario.

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()
--------------------------------------------------------------------------------------------------

En el siguiente script, se envía una solicitud a la autoridad "myCA" para generar un nuevo certificado para el usuario "aa".

2. crear_certificado_por_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() --------------------------------------------------------------------------------------------------

El propósito del siguiente script es firmar el CSR de la autoridad de certificación CFSSL. Los comandos necesarios de OpenSSL se dan arriba para generar el csr para el script.

El siguiente comando se utilizará para firmar la CSR personalizada. Esta funcionalidad no se proporciona en la GUI de Lemur para firmar la CSR utilizando nuestra CA configurada localmente.

comando de generación de pares de claves:

openssl genrsa -out test.key 2048

Creación de CSR utilizando la clave de prueba generada anteriormente:

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

Ahora use el comando "cat" para ver el contenido de test.csr y cópielo en el script para generar el certificado en el CSR generado por el usuario. Una sugerencia importante sobre el uso de CSR en el script es eliminar /r y usar /n, excepto entre las etiquetas de inicio/detención de CSR.

3. crear_certificado_usando_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()
--------------------------------------------------------------------------------------------------

Conclusión

En este artículo, se escriben diferentes secuencias de comandos de Python para interactuar con el proyecto de administrador de certificados de Lemur. Estos scripts serán útiles para que los desarrolladores los usen desde la CLI.


Linux
  1. Blender:la herramienta de creación 3D perfecta para Linux

  2. Fedora Media Writer:una herramienta necesaria para el usuario de Fedora

  3. ¿Cuál es la diferencia entre Marcar para eliminación y Marcar para eliminación completa en Synaptic Package Manager?

  4. ¿Cuál es la razón por la que rmdir(1) y rm(1) coexisten?

  5. ¿Cómo hacer que solo el usuario, el pid y el comando se ejecuten para un proceso específico? (Ubuntu 11.10)

Cómo generar una solicitud de firma de certificado (CSR) con OpenSSL

Integración de CFSSL con Lemur Certificate Manager

Instalación de Vundle:el administrador de complementos para Vim

Las 5 mejores distribuciones de Linux para desarrolladores y programadores

Comandos avanzados de Linux para usuarios avanzados

Cómo generar una clave SSL, una CSR y un certificado autofirmado para Apache