Создание пользователя, сертификата и подписи CSR для менеджера сертификатов Lemur — Information Security Squad

Создание пользователя, сертификата и подписи CSR для менеджера сертификатов Lemur

После успешной установки менеджера сертификатов Lemur был интегрирован корневой центр сертификации CFSSL (CA).

После этапа интеграции локальный CA был создан с использованием CFSSL-плагина в лемуре.

Таким образом, CFSSL является корневым СА в нашем случае.

Поскольку мы знаем, что менеджер сертификатов Lemur основан на Python, поэтому в этой статье мы сосредоточимся на создании различных скритов python, которые будут полезны для дальнейшей работы в проекте.

В этой статье мы будем выполнять следующие скрипты для взаимодействия с Lemur с использованием терминала.

  • Создание полномочий с использованием CFSSL в графическом интерфейсе Lemur. Этот инструмент CFSSL будет использоваться в наших скриптах для создания сертификата. Я установил заголовок «myCA» полномочий CFSSL в графическом интерфейсе. Этот заголовок «myCA» будет использоваться при создании сертификатов в Lemur.

«myCA» отображается в списке после создания.

  • Использование скрипта Python для создания пользователя с ролью «Admin» с использованием Lemur API и запрос отправляется в формате JSON. (проверьте результат на странице пользователей графического интерфейса Lemur).
  • Создание сертификата для указанного владельца и пользователя (проверьте результат на странице сертификата графического интерфейса lemur).
  • создание закрытыъ / открытых ключей с использованием Openssl в терминале (команды приведены ниже для генерации пары ключей, а затем CSR) и
    затем используйте CSR (cat csr file) в скрипте для создания сертификата из определенного настраиваемого значения.

Все скрипты python отправят запрос в формате JSON на платформу Lemur, поэтому, пожалуйста, измените параметры в скриптах в соответствии с вашими требованиями. (например, ваше имя CFSSL, имя пользователя и т. д.)

Скрипты

В следующем скрипте запрос json будет отправлен на 192.168.1.7 (IP-адрес корневого CA Lemur и CFSSL).

После успешной проверки подлинности будет отправлен другой запрос для создания нового пользователя.

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

следующем скрипте запрос отправляется в  «myCA» для создания нового сертификата для пользователя «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": "aa@example.net","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": "aa@example.com"}, "roles": [{"id": 1, "description": "admin role", "name": "aa@example.net"}],"validityStart": "2018-11-11T04:19:48.000Z","organizationalUnit": "Operations"}),headers=Auth)

print cert_req.json()
--------------------------------------------------------------------------------------------------

Целью следующего скрипта является подписание CSR из центра сертификации CFSSL.

Необходимые команды OpenSSL приведены выше для генерации csr для скрипта.

Следующая команда будет использоваться для подписи пользовательского CSR.

Эта функция не предусмотрена в графическом интерфейсе Lemur для подписи CSR с использованием нашего локально настроенного CA.
команда генерации пары ключей:

openssl genrsa -out test.key 2048

Создание CSR с использованием вышеописанного test.key:

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

Теперь используйте команду «cat», чтобы просмотреть содержимое test.csr и скопировать его в скрипт для создания сертификата на созданной пользователем 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": "aa@example.net","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()
--------------------------------------------------------------------------------------------------

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40