Hướng dẫn này trình bày cách cài đặt phần mềm quản lý chứng chỉ Lemur trên Ubuntu 16.04 LTS. Lemur là một dự án mã nguồn mở của NetFlix và được sử dụng để tạo chứng chỉ cho khách hàng/khách hàng tiềm năng. Trong bài viết này, chúng tôi sẽ thiết lập một môi trường ảo dựa trên Python, cài đặt các gói cần thiết, cấu hình dịch vụ web cơ bản và truy cập bảng điều khiển của trình quản lý chứng chỉ. Giả sử bạn có một phiên bản Ubuntu 16.04 LTS sạch đang chạy, ví dụ: trên Đám mây (như AWS) hoặc môi trường ảo hóa cục bộ.
.. code-block:: bash
Lệnh trên sẽ cài đặt nodejs, pip, nginx, git, npm và các gói cơ sở dữ liệu PostgreSQL.
Lưu ý: Việc cài đặt trình quản lý góinode có thể tạo bin nodejs tại đường dẫn /usr/bin/nodejs thay vì /usr/bin/node. Chạy lệnh sau để tạo liên kết mềm tại đường dẫn mong muốn.
Bây giờ, hãy cài đặt gói virtualenv bằng lệnh sau.
Bây giờ, hãy sao chép Lemurnguồn mới nhất bên trong thư mục vừa tạo và cấp cho mình quyền ghi (lemuruseris the đã tạo trong hướng dẫn này):
sudo git clone https://github.com/Netflix/lemur
sudo chown -R lemur lemur/
Ngoài ra, hãy tạo môi trường ảo, kích hoạt nó và vào thư mục của Lemur:
Kích hoạt môi trường điều chỉnh biến môi trường PATH, để các thứ như pip hiện cài đặt vào virtualenv theo mặc định.
Và chạy lệnh sau để cài đặt các phụ thuộc npm cũng như biên dịch các tài sản tĩnh.
Chuỗi SQLALCHEMY_DATABASE_URI của Postgresql có thể được chia nhỏ như sau cái này:
"postgresql://userame
assword@<database-fqdn>:<database-port>/<database-name>"
Ảnh chụp màn hình bên dưới cho thấy các biến bắt buộc sau được điền vào tệp cấu hình:
Đầu tiên, hãy đặt mật khẩu cho người dùng postgres. Trong hướng dẫn này, chúng tôi sẽ sử dụng lemur làm ví dụ nhưng bạn nên sử dụng mật khẩu cơ sở dữ liệu do Lemur tạo ra:
Sau khi thành công, hãy gõ CTRL-D để thoát khỏi shell Postgres.
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu mới:
Ngoài việc tạo một người dùng mới, Lemur cũng tạo một số thông báo email mặc định. Các thông báo này dựa trên một số tùy chọn cấu hình như LEMUR_SECURITY_TEAM_EMAIL. Về cơ bản, họ đảm bảo rằng mọi chứng chỉ trong Lemur sẽ gửi một thông báo hết hạn đến nhóm bảo mật.
Ghi lại mật khẩu đã sử dụng vì mật khẩu này sẽ được sử dụng khi đăng nhập lần đầu vào Giao diện người dùng Lemur.
Ảnh chụp nhanh sau đây hiển thị đầu ra của lệnh "lemur init".
Thêm các dòng sau vào tệp cấu hình "/etc/nginx/sites-available/default".
Sau khi thực hiện những thay đổi này, hãy khởi động lại dịch vụ Nginx để áp dụng chúng:
Bạn có thể đăng nhập bằng người dùng mặc định được tạo trong quá trình Khởi tạo Lemur hoặc bất kỳ người dùng nào khác mà bạn có thể đã tạo. Bây giờ, bạn có thể kiểm tra dịch vụ web bằng cách truy cập . (192.168.10.51 là địa chỉ IP của máy Lemur).
Bảng điều khiển của Lemur được hiển thị ở trên. Bảng điều khiển này được sử dụng để tạo chứng chỉ bằng cách sử dụng Cơ quan cấp chứng chỉ gốc hoặc tự ký.
Phụ thuộc
Một số điều kiện tiên quyết cơ bản mà bạn cần để chạy Lemur:- Hệ điều hành Linux (Ubuntu 16.04 LTS được sử dụng trong hướng dẫn này).
- Python 3.5 trở lên.
- PostgreSQL 9.4 trở lên.
- Máy chủ web Nginx.
Cài đặt phụ thuộc xây dựng
Khi bạn cài đặt Lemur trên hệ điều hành Ubuntu đơn thuần, bạn sẽ cần lấy các gói sau để Lemur có thể xây dựng chính xác các phụ thuộc của nó:.. code-block:: bash
Mã:
sudo apt-get update
sudo apt-get install nodejs nodejs-legacy python-pip python-dev python3-dev libpq-dev build-essential libssl-dev libffi-dev libsasl2-dev libldap2-dev nginx git supervisor npm postgresql
Lệnh trên sẽ cài đặt nodejs, pip, nginx, git, npm và các gói cơ sở dữ liệu PostgreSQL.
Lưu ý: Việc cài đặt trình quản lý góinode có thể tạo bin nodejs tại đường dẫn /usr/bin/nodejs thay vì /usr/bin/node. Chạy lệnh sau để tạo liên kết mềm tại đường dẫn mong muốn.
Mã:
sudo ln -s /user/bin/nodejs /usr/bin/node
Mã:
sudo pip install -U virtualenv
Thiết lập môi trường dựng
Trong hướng dẫn này, Lemur sẽ được cài đặt trong thư mục /www, vì vậy trước tiên bạn cần tạo thư mục đó:
Mã:
sudo mkdir /www
cd /www
Bây giờ, hãy sao chép Lemurnguồn mới nhất bên trong thư mục vừa tạo và cấp cho mình quyền ghi (lemuruseris the đã tạo trong hướng dẫn này):
Mã:
sudo useradd lemur
sudo passwd lemur
sudo mkdir /home/lemur
sudo chown lemur:lemur /home/lemur
sudo git clone https://github.com/Netflix/lemur
sudo chown -R lemur lemur/
Ngoài ra, hãy tạo môi trường ảo, kích hoạt nó và vào thư mục của Lemur:
Mã:
su lemur
virtualenv -p python3 lemur
Mã:
source /www/lemur/bin/activate
cd lemur
Kích hoạt môi trường điều chỉnh biến môi trường PATH, để các thứ như pip hiện cài đặt vào virtualenv theo mặc định.
Cài đặt Lemur từ Nguồn
Sau khi thiết lập hệ thống, hãy đảm bảo rằng bạn đang ở trong virtualenv để chạy lệnh "make release".
Mã:
which python
Và chạy lệnh sau để cài đặt các phụ thuộc npm cũng như biên dịch các tài sản tĩnh.
Mã:
make release
Tạo cấu hình Lemur
Trước khi chạy Lemur, chúng ta phải tạo một tệp cấu hình hợp lệ cho nó. Giao diện dòng lệnh Lemur đi kèm với một lệnh đơn giản để giúp bạn bắt đầu và chạy nhanh chóng. Lệnh sau sẽ tạo cấu hình mặc định trong "~/.lemur/lemur.conf.py" và vị trí này có thể được chỉ định bằng cách truyền tham số config_path cho lệnh create_config.
Mã:
lemur create_config
Cập nhật cấu hình Lemur
Sau khi tạo, bạn sẽ cần cập nhật tệp cấu hình bằng thông tin về môi trường của mình, chẳng hạn như cơ sở dữ liệu nào để giao tiếp, nơi lưu trữ khóa, v.v.
Mã:
vi ~/.lemur/lemur.conf.py
"postgresql://userame
Ảnh chụp màn hình bên dưới cho thấy các biến bắt buộc sau được điền vào tệp cấu hình:
Mã:
LEMUR_SECURITY_TEAM_EMAIL
Mã:
LEMUR_DEFAULT_COUNTRY
LEMUR_DEFAULT_STATE
LEMUR_DEFAULT_LOCATION
LEMUR_DEFAULT_ORGANIZATION
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT
Thiết lập cơ sở dữ liệu Postgres
Đối với sản xuất, nên sử dụng cơ sở dữ liệu chuyên dụng. Đối với hướng dẫn này, tôi sẽ giả định rằng postgres đã được cài đặt và nằm trên cùng một máy mà Lemur được cài đặt.Đầu tiên, hãy đặt mật khẩu cho người dùng postgres. Trong hướng dẫn này, chúng tôi sẽ sử dụng lemur làm ví dụ nhưng bạn nên sử dụng mật khẩu cơ sở dữ liệu do Lemur tạo ra:
Mã:
sudo -u postgres -i
Mã:
psql
postgres=# CREATE USER lemur WITH PASSWORD 'lemur';
Sau khi thành công, hãy gõ CTRL-D để thoát khỏi shell Postgres.
Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu mới:
Mã:
sudo -u postgres createdb lemur
Initializing Lemur Certificate Manager
Lemur cung cấp một lệnh hữu ích sẽ khởi tạo cơ sở dữ liệu cho bạn. Nó tạo ra một người dùng mặc định (lemur) được Lemur sử dụng để giúp liên kết các chứng chỉ hiện không có chủ sở hữu. Trường hợp này thường xảy ra nhất khi Lemur phát hiện ra các chứng chỉ từ nguồn của bên thứ ba. Đây cũng là một người dùng mặc định có thể được sử dụng để quản lý Lemur.Ngoài việc tạo một người dùng mới, Lemur cũng tạo một số thông báo email mặc định. Các thông báo này dựa trên một số tùy chọn cấu hình như LEMUR_SECURITY_TEAM_EMAIL. Về cơ bản, họ đảm bảo rằng mọi chứng chỉ trong Lemur sẽ gửi một thông báo hết hạn đến nhóm bảo mật.
Ghi lại mật khẩu đã sử dụng vì mật khẩu này sẽ được sử dụng khi đăng nhập lần đầu vào Giao diện người dùng Lemur.
Mã:
cd /www/lemur/lemur
Mã:
lemur init
Ảnh chụp nhanh sau đây hiển thị đầu ra của lệnh "lemur init".
Cấu hình máy chủ web NGINX cho Lemur
Theo mặc định, Lemur chạy trên cổng 8000. Ngay cả khi bạn thay đổi điều này, trong điều kiện bình thường, bạn sẽ không thể liên kết với cổng 80. Để khắc phục điều này (và để tránh chạy Lemur với tư cách là người dùng có đặc quyền, điều mà bạn không nên làm), chúng tôi cần thiết lập một proxy web đơn giản. Có nhiều máy chủ web khác nhau mà bạn có thể sử dụng cho mục đích này, chúng tôi thích và đề xuất Nginx.Thêm các dòng sau vào tệp cấu hình "/etc/nginx/sites-available/default".
Mã:
location /api {
proxy_pass http://127.0.0.1:8000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Mã:
location / {
root /www/lemur/lemur/static/dist;
include mime.types;
index index.html;
}
Sau khi thực hiện những thay đổi này, hãy khởi động lại dịch vụ Nginx để áp dụng chúng:
Mã:
sudo service nginx restart
Khởi động Dịch vụ Web
Lemur cung cấp một máy chủ web tích hợp (được hỗ trợ bởi gunicorn và eventlet) để giúp bạn khởi động nhanh chóng. Để khởi động máy chủ web, bạn chỉ cần sử dụng "lemur start".Bạn có thể đăng nhập bằng người dùng mặc định được tạo trong quá trình Khởi tạo Lemur hoặc bất kỳ người dùng nào khác mà bạn có thể đã tạo. Bây giờ, bạn có thể kiểm tra dịch vụ web bằng cách truy cập . (192.168.10.51 là địa chỉ IP của máy Lemur).
Bảng điều khiển của Lemur được hiển thị ở trên. Bảng điều khiển này được sử dụng để tạo chứng chỉ bằng cách sử dụng Cơ quan cấp chứng chỉ gốc hoặc tự ký.