GNU/Linux >> Belajar Linux >  >> Linux

Pembuatan User, Sertifikat dan Penandatanganan CSR untuk Manajer Sertifikat Lemur

Setelah berhasil menginstal pengelola sertifikat Lemur, Root Certification Authority (CA) CFSSL terintegrasi dengannya. Setelah langkah integrasi, CA lokal dibuat menggunakan plugin CFSSL di lemur. Jadi, CFSSL adalah CA root dalam kasus kami. Seperti yang kita ketahui bahwa manajer sertifikat Lemur berbasis Python sehingga dalam artikel ini, fokus kami adalah membuat skrip python yang berbeda yang akan berguna untuk pengembangan lebih lanjut dalam proyek. Pada artikel ini, kami akan melakukan skrip berikut untuk berinteraksi dengan Lemur menggunakan terminal.

  • Pembuatan Otoritas menggunakan CFSSL di GUI Lemur. Otoritas CFSSL ini akan digunakan dalam skrip kami untuk menghasilkan sertifikat. Saya telah menetapkan judul "myCA" dari otoritas CFSSL di GUI. Judul "myCA"  ini akan digunakan dalam pembuatan sertifikat dari Lemur.

Menggunakan plugin CFSSL 

"myCA" ditampilkan dalam daftar setelah dibuat.

  • Menggunakan skrip Python untuk membuat pengguna dengan peran "Admin" menggunakan API Lemur dan permintaan dikirim dalam format JSON. (verifikasi hasil dari halaman pengguna GUI Lemur).
  • Pembuatan Sertifikat untuk pemilik dan pengguna tertentu (Verifikasi hasil dari halaman sertifikat GUI lemur).
  • Pembuatan kunci privat/publik menggunakan Openssl di terminal (perintah diberikan di bawah ini untuk menghasilkan pasangan kunci dan kemudian CSR) dan
  • lalu Gunakan CSR (cat file csr) dalam skrip untuk menghasilkan sertifikat dari otoritas kustom yang ditentukan.

CATATAN:

Semua skrip python akan mengirimkan permintaan dalam format JSON ke  platform Lemur, jadi harap ubah parameter dalam skrip sesuai kebutuhan Anda. (seperti nama otoritas CFSSL Anda, nama pengguna, dll.)

Script

Dalam skrip berikut, permintaan json akan dikirim ke 192.168.1.7 (alamat IP dari CA root Lemur dan CFSSL). Setelah otentikasi berhasil, permintaan lain akan dikirim untuk pembuatan pengguna baru.

1. create_user_using_admin_role.py

#!/usr/bin/python
import permintaan impor json
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 ={'Otorisasi':'token %s' %login.json()["token"], 'content-type':'application/json'}
test =request.request("POST","http ://192.168.1.7/api/1/users",data=json.dumps({'username':"aa", 'aaa':"aaa" ,"email":"[email protected]","aktif ":"true", "roles":[{'id':1}or{'name':'myRole'}]}),headers=Auth)
print test.json()
-------------------------------------------------- -------------------------------------------------- pra>

Dalam skrip berikut, permintaan dikirim ke otoritas "myCA" untuk menghasilkan sertifikat baru untuk pengguna "aa".

2. create_certifacte_by_lemur.py

#!/usr/bin/python
import json
import request
##namapengguna/sandi untuk login lemur untuk melakukan tindakan yang diinginkan
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- ketik':'application/json'}cert_req =request.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", "otoritas":{"name":"myCA" }, "organization":"test.", "location":"Los Gataaos", "state":"Caldifornia ", "pengguna":{ "nama pengguna":"aa","active":"true","email":"[email protected]"}, "roles":[{"id":1, "description" :"peran admin", "name":"[email protected]"}],"validityStart":"2018-11-11T04:19:48.000Z","organ izationalUnit":"Operations"}),headers=Auth)
print cert_req.json()--------------------------- -------------------------------------------------- ------------------

Tujuan dari skrip berikut adalah untuk menandatangani CSR dari otoritas sertifikasi CFSSL. Perintah OpenSSL yang diperlukan diberikan di atas untuk menghasilkan csr untuk skrip.

Perintah berikut akan digunakan untuk menandatangani CSR kustom. Fungsionalitas ini tidak disediakan di GUI Lemur untuk menandatangani CSR menggunakan CA pengaturan lokal kami.

perintah pembuatan pasangan kunci:

openssl genrsa -out test.key 2048

Pembuatan CSR menggunakan test.key yang dibuat di atas:

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

Sekarang gunakan perintah "cat" untuk melihat konten test.csr dan salin dalam skrip untuk menghasilkan sertifikat pada CSR yang dibuat pengguna. Petunjuk penting tentang penggunaan CSR dalam skrip adalah menghapus /r dan menggunakan /n kecuali di antara tag start/stop CSR.

3. create_certificate_using_local_csr.py

#!/usr/bin/python
import json
import request
##ubah username/password di sini
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'}
#berfungsi
csr_req =request.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 SERTIFIKAT 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 ----- SERTIFIKAT END REQUEST ----- "}), header =Tupoksi)
print csr_req.json()
----------------------------------------- -------------------------------------------------- -------

Kesimpulan

Dalam artikel ini, skrip python yang berbeda ditulis untuk berinteraksi dengan proyek manajer sertifikat Lemur. Skrip ini akan membantu pengembang untuk menggunakannya dari CLI.


Linux
  1. Cara Membuat Permintaan Penandatanganan Sertifikat (CSR) di Linux

  2. Gagal Menandatangani Csr Dengan Kunci Root Ca?

  3. Pembuatan Grup dan Pengguna 'thesql', Pengaturan Kepemilikan?

  1. Nix – Manajer Paket yang Kuat untuk Linux dan Unix

  2. Perbedaan Antara Akun Pengguna dan Layanan?

  3. Cara Menghasilkan Kunci SSL, CSR, dan Sertifikat yang Ditandatangani Sendiri Untuk Apache

  1. Apa Perbedaan Antara Pengguna Biasa dan Pengguna Sistem?

  2. Cara menghasilkan Kunci dan CSR di cPanel untuk Sertifikat SSL Anda

  3. Blender – Alat Pembuatan 3D Sempurna untuk Linux