Tạo Người dùng, Chứng chỉ và Ký CSR cho Lemur Certificate Manager

theanh

Administrator
Nhân viên
Sau khi cài đặt thành công trình quản lý chứng chỉ Lemur, CFSSL Root Certification Authority (CA) đã được tích hợp với nó. Sau bước tích hợp, CA cục bộ đã được tạo bằng plugin CFSSL trong lemur. Vì vậy, CFSSL là CA gốc trong trường hợp của chúng tôi. Như chúng ta đã biết, trình quản lý chứng chỉ Lemur dựa trên Python nên trong bài viết này, trọng tâm của chúng tôi là tạo các tập lệnh python khác nhau sẽ hữu ích cho quá trình phát triển tiếp theo của dự án. Trong bài viết này, chúng tôi sẽ thực hiện các tập lệnh sau để tương tác với Lemur bằng thiết bị đầu cuối.
  • Tạo Authority bằng CFSSL trong Lemur GUI. CFSSL Authority này sẽ được sử dụng trong các tập lệnh của chúng tôi để tạo chứng chỉ. Tôi đã đặt tiêu đề "myCA" của quyền CFSSL trong GUI. Tiêu đề "myCA" này sẽ được sử dụng trong quá trình tạo chứng chỉ từ Lemur.


Sử dụng plugin CFSSL



"myCA" được hiển thị trong danh sách sau khi tạo.
  • Sử dụng tập lệnh Python để tạo người dùng có vai trò "Quản trị viên" bằng API Lemur và yêu cầu được gửi ở định dạng JSON. (xác minh kết quả từ trang người dùng của Lemur GUI).
  • Tạo chứng chỉ cho chủ sở hữu và người dùng đã chỉ định (Xác minh kết quả từ trang chứng chỉ của lemur GUI).
  • Tạo khóa riêng tư/công khai bằng Openssl trong thiết bị đầu cuối (các lệnh được đưa ra bên dưới để tạo cặp khóa và sau đó là CSR) và
  • sau đó sử dụng CSR (cat tệp csr) trong tập lệnh để tạo chứng chỉ từ thẩm quyền tùy chỉnh đã xác định.
LƯU Ý:

Tất cả các tập lệnh python sẽ gửi yêu cầu ở định dạng JSON đến nền tảng Lemur, vì vậy hãy thay đổi các tham số trong tập lệnh theo yêu cầu của bạn. (như tên thẩm quyền CFSSL, tên người dùng, v.v.)

Tập lệnh​

Trong tập lệnh sau, yêu cầu json sẽ được gửi đến 192.168.1.7 (địa chỉ IP của Lemur và CA gốc CFSSL). Sau khi xác thực thành công, một yêu cầu khác sẽ được gửi để tạo người dùng mới.

1.create_user_using_admin_role.py


Mã:
#!/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":"[emailprotected]","active": "true", "roles": [{'id':1}or{'name': 'myRole'}]}),headers=Auth)
print test.json()
--------------------------------------------------------------------------------------------------
Trong tập lệnh sau, một yêu cầu được gửi đến cơ quan "myCA" để tạo chứng chỉ mới cho người dùng "aa".

2. create_certifacte_by_lemur.py
Mã:
#!/usr/bin/python
import json
import requests
##username/password để đăng nhập lemur để thực hiện hành động mong muốn 
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 = yêu cầu.yêu cầu("POST","http://192.168.1.7/api/1/certificates",data=json.dumps({"owner": "[emailprotected]","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": "[emailprotected]"}, "roles": [{"id": 1, "description": "admin role", "name": "[emailprotected]"}],"validityStart": "2018-11-11T04:19:48.000Z","organizationalUnit": "Operations"}),headers=Auth)
print cert_req.json()--------------------------------------------------------------------------------------------------
Mục đích của tập lệnh sau là ký CSR từ cơ quan cấp chứng chỉ CFSSL. Các lệnh cần thiết của OpenSSL được đưa ra ở trên để tạo csr cho tập lệnh.

Lệnh sau sẽ được sử dụng để ký CSR tùy chỉnh. Chức năng này không được cung cấp trong Lemur GUI để ký CSR bằng CA được thiết lập cục bộ của chúng tôi.

Lệnh tạo cặp khóa:
Mã:
openssl genrsa -out test.key 2048
Tạo CSR bằng test.key được tạo ở trên:
Mã:
openssl req -new -sha256 -key test.key -out test.csr
Bây giờ sử dụng lệnh "cat" để xem nội dung của test.csr và sao chép nó vào tập lệnh để tạo chứng chỉ trên CSR do người dùng tạo. Gợi ý quan trọng về cách sử dụng CSR trong tập lệnh là xóa /r và sử dụng /n ngoại trừ giữa các thẻ bắt đầu/dừng của CSR.

3. create_certificate_using_local_csr.py
Mã:
#!/usr/bin/python
import json
import requests
##thay đổi tên người dùng/mật khẩu tại đây 
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": "[emailprotected]","commonName": "aa.eaaxample.net","authority": {"name": "myCA" },"csr":"-----BẮT ĐẦU CHỨNG NHẬN YÊU CẦU-----
\nMIICxzCCAa8CAQAwgYExCzAJBgNVBAYTAkFVMQ0wCwYDVQQIDARQQUtJMRIwEAYD\nVQQHDAlJU0xBTUFCQUQxDTALBgNVBAoMBElJSUkxDDAKBgNVBAsMA0dHRzEQMA4G\nA1UEAwwHdXNlcjEyMzEgMB4GCSqGSIb3DQEJARYRdXNlcjEyM0BnbWFpbC5jb20w\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKA oIBAQDzzV4H1epwXODPs9AkioTv\nQLRtea12vCbZJhKkH59hWhDMjqNRkh8qc4R9gk83lingdWK+L35OkGNi6DG9zseh\ncVRf68sNpTeFg+eXGRmEdTallBqPd5NS3JlMmXxbLEWrELiw4gPp3JpNAzoYZUxb\n4Uk4ho9EN8Fd1/lGmubvyvkYJ1mbpsK1LfaFohGYu+7nMvU4tn1Av/zyTGcIikVu\nU4UA23jKAMzjlSKdTJH/nmqvMi 2wltRtb7DNpI/5HAancrnyEzeXC5IN+sPV/5oh\nxdxCyAkp1kDrWhC2yvoffzipoqEFESWmfFrJ8riTiQZqOIWqW+ZasZtu4GDqm4CL\nAgMBAAGgADANBgkqhkiG 9w0BAQsFAAOCAQEAH/PKs5kTmMPRW2Icy4Yj7vdzjpaA\n/r1glm0voMR5ytPo0+lXHDTQwt/1ObQvr8FnT2z8iqRvfXiv6WWruLzwEEVWsCFL\ny7RAa+K0wqP23Cf xzCy/S4ZwCcR+wQb3UnWui8eMxgU1IBjupCR9kPFhL//aA+lm\njBi5YruBgX7MdlW+AlkuVDljzXm1orFYZFzS7OlybH5jh/B3Z2ygbC++Y24XI3qm\n5IYpsxFbO mrj7y3IXN/990305blCcKhpaG+FMTKhNqkXMYKYsZseIO3xdO4Ufjl/\nqS2jjsE1sFxmKbabhguhTT06oGimT+TbgoYVkc0DWhIdLcrOdxhGsFwdqg==\n------END YÊU CẦU CHỨNG NHẬN-----"}),headers=Auth)
print csr_req.json()
--------------------------------------------------------------------------------------------------

Kết luận​

Trong bài viết này, các tập lệnh python khác nhau được viết để tương tác với dự án quản lý chứng chỉ Lemur. Các tập lệnh này sẽ hữu ích cho các nhà phát triển khi sử dụng nó từ CLI.
 
Back
Bên trên