Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Quá trình tạo chứng chỉ SSL / TLS là một nhiệm vụ phổ biến đối với nhiều quản trị viên hệ thống Linux. May mắn thay, ngay cả khi bạn không phải là quản trị viên, bạn cũng có thể dễ dàng thực hiện điều này bằng cách sử dụng OpenSSL, một công cụ mã nguồn mở được cài đặt mặc định trên nhiều bản phân phối Linux. Sau đây, chúng tôi giải thích OpenSSL là gì, cách cài đặt nó và quan trọng nhất là cách sử dụng nó để tạo chứng chỉ SSL và TLS trên hệ thống của bạn.

OpenSSL là gì?

OpenSSL là một thư viện được phát triển bởi Dự án OpenSSL để cung cấp triển khai SSL và TLS nguồn mở để mã hóa lưu lượng mạng. Nó có sẵn cho nhiều loại phân phối dựa trên Unix và có thể được sử dụng để tạo chứng chỉ, khóa riêng RSA và thực hiện các tác vụ chung liên quan đến mật mã.

Giới hạn của Chứng chỉ SSL tự ký

Khi bạn sử dụng OpenSSL để tạo chứng chỉ SSL, chứng chỉ đó được coi là “tự ký”. Có nghĩa là chứng chỉ SSL được ký bằng khóa riêng của nó chứ không phải từ Tổ chức phát hành chứng chỉ (CA).

Do đó, chứng chỉ SSL không thể “đáng tin cậy” và không nên được sử dụng cho bất kỳ trang web công khai nào. Nếu được sử dụng, người dùng có thể sẽ thấy cảnh báo từ trình duyệt của họ về chứng chỉ.

Chứng chỉ tự ký rất hữu ích cho việc phát triển cục bộ hoặc bất kỳ ứng dụng nào chạy trong nền không có Internet.

Ngoài ra, bạn có thể sử dụng LetsEncrypt hoặc lấy chứng chỉ được xác minh bởi cơ quan đáng tin cậy, chẳng hạn như Comodo CA.

Cài đặt

Hầu hết các bản phân phối Linux đều đã có phiên bản OpenSSL được tích hợp sẵn theo mặc định. Nếu không, bạn có thể dễ dàng cài đặt nó.

Bạn có thể cài đặt nó trên Ubuntu và Debian bằng cách sử dụng apt lệnh:

sudo apt install openssl

Trên CentOS (hoặc thay thế của nó), bạn có thể cài đặt nó bằng cách sử dụng yum lệnh:

sudo yum install openssl

Bạn cũng có thể dễ dàng tải xuống từ trang web của nó dưới dạng tệp “.tar.gz”.

Cách sử dụng Cơ bản

Bây giờ bạn đã cài đặt OpenSSL, chúng ta có thể xem một số chức năng cơ bản mà chương trình cung cấp.

Bạn có thể bắt đầu bằng cách xem phiên bản và thông tin liên quan khác về cài đặt OpenSSL của mình:

openssl version -a
Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Bạn có thể xem hướng dẫn sử dụng được cung cấp:

openssl help
Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Tạo chứng chỉ bằng tệp cấu hình

Có thể tạo chứng chỉ bằng OpenSSL theo nhiều cách. Một trong số đó là sử dụng tệp cấu hình sẽ chỉ định thông tin chi tiết về tổ chức.

Để bắt đầu, bạn có thể tạo một tệp cấu hình có tên “config.conf” và chỉnh sửa nó bằng Nano:

sudo nano example.conf

Đây là một ví dụ về nội dung của tệp cấu hình:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
x509_extensions= v3_ca
distinguished_name = dn
 
[dn]
C = US
ST = California
L = Los Angeles
O = Org
OU = Sales
emailAddress = test@test.com
CN = www.org.test.com
 
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
 
[req_ext]
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = test.example.com

Bạn chỉ có thể sao chép và dán phần này vào tệp và thực hiện các thay đổi cần thiết để phản ánh thông tin của tổ chức bạn.

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Tiếp theo, bạn phải tạo khóa cá nhân RSA, khóa này sau đó sẽ được sử dụng để tạo chứng chỉ gốc -:

openssl genrsa -out example.key 2048

-out cờ được sử dụng trong trường hợp này để chỉ định tên của khóa sẽ được tạo. Kích thước khóa 2048 bit cũng được chỉ định, là kích thước mặc định cho khóa RSA.

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Bạn cũng sẽ phải tạo Yêu cầu ký chứng chỉ (CSR):

openssl req -new -key example.key -out example.csr -config example.conf

Trong trường hợp này, -key cờ được sử dụng để chỉ định khóa RSA, -out cờ chỉ định tên của tệp CSR và -config cờ được sử dụng để chỉ định tên của tệp cấu hình.

Sau đó, bạn có thể tạo chứng chỉ gốc, được sử dụng để tạo chứng chỉ cuối cùng của chúng tôi:

openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf

Trong quá trình tạo chứng chỉ gốc này, -sha256 cờ được sử dụng để chỉ định SHA256 làm thông báo thông báo.

Bây giờ, đối với bước cuối cùng, cuối cùng chúng ta có thể nhập như sau để tạo chứng chỉ của mình:

openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt

-CA cờ chỉ định chứng chỉ gốc, -CAkey cờ chỉ định khóa cá nhân và -extfile chỉ định tên của tệp cấu hình. Tệp “final.crt” sẽ là chứng chỉ SSL bạn muốn.

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Tạo chứng chỉ mà không có tệp cấu hình

Ngoài ra, bạn cũng có thể tạo chứng chỉ bằng OpenSSL mà không cần tệp cấu hình.

Bạn có thể bắt đầu bằng cách tạo khóa cá nhân RSA:

openssl genrsa -out example.key 2048

Tiếp theo, bạn sẽ phải tạo CSR:

openssl req -new -key example.key -out example.csr

Khi tạo CSR, bạn sẽ được nhắc trả lời các câu hỏi về tổ chức của mình.

Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Cuối cùng, chúng ta có thể tự tạo chứng chỉ:

openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Xác minh Khóa và Chứng chỉ

Khóa và chứng chỉ dễ dàng được kiểm tra và xác minh bằng OpenSSL, với -check cờ:

openssl rsa -check -in example.key
Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Bạn có thể kiểm tra các yêu cầu ký chứng chỉ:

openssl req -text -noout -in example.csr

và các chứng chỉ nữa:

openssl x509 -text -noout -in example.crt
Cách tạo chứng chỉ SSL trên Linux bằng OpenSSL

Câu hỏi thường gặp

1. Tôi có còn phải lo lắng về Heartbleed không?

Heartbleed (CVE-2014-0160) là một lỗ hổng cũ được tìm thấy trong OpenSSL vào năm 2014. Máy chủ TLS và máy khách chạy OpenSSL đều bị ảnh hưởng. Một bản vá nhanh chóng được phát hành vài ngày sau khi được phát hiện và lỗ hổng này không phải là điều đáng lo ngại vào năm 2022, miễn là bạn đang chạy phiên bản OpenSSL hiện đại và cập nhật.

Nếu bạn đang sử dụng OpenSSL trên các hệ thống dựa trên Debian và Ubuntu, bạn luôn có thể cập nhật nó bằng cách chạy các lệnh sau:

sudo apt update && sudo apt upgrade openssl

2. Chứng chỉ SSL tồn tại trong bao lâu trước khi chúng hết hạn?

Điều này phụ thuộc vào giá trị bạn chọn khi tạo chứng chỉ. Điều này có thể được chỉ định bằng cách sử dụng -days gắn cờ khi tạo chứng chỉ.