Po úspěšné instalaci správce certifikátů Lemur do něj byla integrována kořenová certifikační autorita (CA) CFSSL. Po kroku integrace byla vytvořena místní CA pomocí pluginu CFSSL v lemurovi. Takže CFSSL je v našem případě kořenová CA. Protože víme, že správce certifikátů Lemur je založen na Pythonu, v tomto článku se zaměříme na vytvoření různých pythonových skriptů, které budou užitečné pro další vývoj v projektu. V tomto článku provedeme následující skripty pro interakci s Lemurem pomocí terminálu.
- Vytvoření oprávnění pomocí CFSSL v grafickém uživatelském rozhraní Lemur. Tato autorita CFSSL bude použita v našich skriptech k vygenerování certifikátu. Nastavil jsem název "myCA" autority CFSSL v GUI. Tento název „myCA“ bude použit při generování certifikátů od Lemur.
Použití pluginu CFSSL
„myCA“ se zobrazí v seznamu po vytvoření.
- Použití skriptu Python k vytvoření uživatele s rolí „Admin“ pomocí rozhraní Lemur API a požadavek je odeslán ve formátu JSON. (ověřte výsledek na uživatelské stránce GUI Lemur).
- Vytvoření certifikátu pro zadaného vlastníka a uživatele (Ověřte výsledek na stránce certifikátu GUI lemurů).
- generování soukromých/veřejných klíčů pomocí Openssl v terminálu (níže jsou uvedeny příkazy pro vygenerování páru klíčů a poté CSR) a
- pak pomocí CSR (cat the csr soubor) ve skriptu vygenerujte certifikát z definované vlastní autority.
POZNÁMKA:
Všechny skripty python odešlou požadavek ve formátu JSON na platformu Lemur, proto prosím změňte parametry ve skriptech podle svých požadavků. (jako vaše jméno úřadu CFSSL, uživatelské jméno atd.)
Skripty
V následujícím skriptu bude požadavek json odeslán na 192.168.1.7 (IP adresa kořenové CA Lemur a CFSSL). Po úspěšné autentizaci bude odeslán další požadavek na vytvoření nového uživatele.
1. create_user_using_admin_role.py
#!/usr/bin/python
import požadavků na import json
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 ={'Autorizace':'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":"[e-mail chráněný]","aktivní ":"true", "roles":[{'id':1}or{'name':'myRole'}]}),headers=Auth)
print test.json()
-------------------------------------------------- ------------------------------------------------V následujícím skriptu je autoritě „myCA“ zaslán požadavek na vygenerování nového certifikátu pro uživatele „aa“.
2. create_certifacte_by_lemur.py
#!/usr/bin/python
importujte json
importujte požadavky
##username/password pro přihlášení lemura k provedení požadované akce
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'})
tisknout login.json()Auth ={'Autorizace':'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":"[e-mail chráněn ]","commonName":"aa.example.net","country":"AU","replacements":[{"id":1 }],"notify":"true","validityEnd":" 2026-01-01T08:00:00.000Z", "autorita":{"name":"myCA" }, "organization":"test.", "location":"Los Gataaos", "state":"Caldifornia" ", "user":{ "username":"aa","active":"true","email":"[e-mail chráněný]"}, "role":[{"id":1, "description" :"role správce", "name":"[e-mail chráněný]"}],"validityStart":"2018-11-11T04:19:48.000Z","organ izationalUnit":"Operations"}),headers=Auth)
print cert_req.json()--------------------------- -------------------------------------------------- ---------------------Účelem následujícího skriptu je podepsat CSR od certifikační autority CFSSL. Nezbytné příkazy OpenSSL jsou uvedeny výše pro generování csr pro skript.
K podepsání vlastního CSR bude použit následující příkaz. Tato funkce není poskytována v Lemur GUI pro podepsání CSR pomocí našeho lokálně nastaveného CA.
příkaz pro generování páru klíčů:
openssl genrsa -out test.key 2048Vytvoření CSR pomocí výše vygenerovaného test.key:
openssl req -new -sha256 -key test.key -out test.csrNyní použijte příkaz "cat" k zobrazení obsahu test.csr a zkopírujte jej do skriptu pro vygenerování certifikátu na uživatelem vygenerovaném CSR. Důležitou nápovědou k použití CSR ve skriptu je odstranit /r a použít /n s výjimkou mezi značkami start/stop CSR.
3. create_certificate_using_local_csr.py
#!/usr/bin/python
importujte json
importujte požadavky
##změňte uživatelské jméno/heslo zde
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'})
tisknout login.json()
Auth ={'Autorizace':'token %s' %login.json()["token"], 'typ obsahu' :'application/json'}
#to funguje
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 žádost o certifikát -----
\ 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 žádost o certifikát ----- "}), hlavičky =Auth)
tisk csr_req.json()
----------------------------------------- -------------------------------------------------- -------Závěr
V tomto článku jsou napsány různé python skripty pro interakci s projektem správce certifikátů Lemur. Tyto skripty pomohou vývojářům používat je z CLI.
Linuxový sloupec Command Tutorial pro začátečníky (s příklady) Výukový program pro ovládání prstem v Linuxu pro začátečníky (5 příkladů)Linux