OpenSSL là một công cụ quan trọng để mã hóa giao tiếp trên Internet và tăng cường bảo mật.
Bắt đầu
Đối với những ai đang thắc mắc “Chứng chỉ là gì?” và “Tôi nghe nói nên sử dụng OpenSSL, nhưng...”. Bài viết này sẽ giải thích một cách dễ hiểu về cách sử dụng OpenSSL từ những điều cơ bản nhất đến cách tạo chứng chỉ cho những người lần đầu sử dụng. Chúng tôi sẽ hỗ trợ bạn hiểu một cách suôn sẻ về việc thiết lập giao tiếp mã hóa và cách xử lý chứng chỉ.
OpenSSL là gì?
OpenSSL là một bộ công cụ mã hóa mã nguồn mở. Nó chủ yếu mã hóa giao tiếp SSL/TLS và thực hiện mã hóa và giải mã dữ liệu. Nó được sử dụng rộng rãi để gửi và nhận thông tin một cách an toàn trên Internet.
Lợi ích của OpenSSL
Khi sử dụng OpenSSL, bạn có thể dễ dàng tăng cường bảo mật cho trang web, mã hóa email và mã hóa tệp tin. Ngoài ra, bạn có thể tự tạo chứng chỉ, giúp tiết kiệm chi phí đồng thời đảm bảo bảo mật cao.
- Miễn phí sử dụng
- Hỗ trợ rộng rãi
- Độ tin cậy cao
Điểm học tập cho người mới bắt đầu
Khi học OpenSSL, điều quan trọng là hiểu cách cài đặt và các lệnh cơ bản trước. Sau đó, hãy làm quen với việc tạo chứng chỉ và các kỹ thuật mã hóa để phát triển kỹ năng thực tiễn.
Xây dựng môi trường
Để bắt đầu với OpenSSL, trước tiên bạn cần chuẩn bị môi trường. Phần này sẽ giải thích từ chuẩn bị những thứ cần thiết đến quy trình cài đặt.
Những gì cần thiết
Để sử dụng OpenSSL, bạn cần những thứ sau:
- Kết nối Internet (cần thiết để tải xuống gói cài đặt.)
- Cài đặt OpenSSL
- Công cụ dòng lệnh (PowerShell cho Windows, Terminal cho macOS hoặc Linux)
Quy trình cài đặt
Windows
- Tải xuống trình cài đặt cho Windows từ trang web chính thức của OpenSSL.
- Chạy trình cài đặt và thực hiện cài đặt.
- Thêm OpenSSL vào biến môi trường PATH.
macOS
Trên macOS, bạn có thể dễ dàng cài đặt bằng Homebrew. Chạy lệnh sau:
brew install openssl
- Nếu bạn chưa cài đặt Homebrew, hãy làm theo hướng dẫn trên trang web chính thức.
Linux
Trên Linux, bạn sẽ cài đặt bằng trình quản lý gói. Ví dụ, với Ubuntu, lệnh là:
sudo apt install openssl
- Giả sử, mở terminal và sử dụng trình quản lý gói để cài đặt.
sudo apt-get install openssl
Kiểm tra hoạt động
Sau khi cài đặt xong, hãy sử dụng lệnh sau để kiểm tra xem đã cài đặt thành công chưa:
openssl version
Nếu phiên bản hiển thị, thì việc cài đặt đã thành công.
Các thao tác cơ bản
Sử dụng OpenSSL để thực hiện các thao tác cơ bản.
Lệnh trợ giúp
OpenSSL có nhiều lệnh và tùy chọn khác nhau. Bạn có thể hiển thị trợ giúp bằng lệnh sau:
openssl help
Kiểm tra phiên bản
Để kiểm tra phiên bản OpenSSL đã cài đặt, bạn có thể thực hiện lệnh sau:
openssl version
Mã hóa và giải mã
Bằng cách sử dụng OpenSSL, bạn có thể mã hóa và giải mã dữ liệu.
Mã hóa
Để mã hóa tệp, bạn có thể sử dụng lệnh sau:
openssl enc -aes-256-cbc -in plaintext.txt -out encrypted.txt
Giải mã
Để giải mã tệp đã được mã hóa, hãy sử dụng lệnh sau:
openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt
Tính toán băm
Để tính toán giá trị băm của tệp hoặc chuỗi, hãy sử dụng lệnh sau:
openssl dgst -sha256 file.txt
Tạo chứng chỉ
Bây giờ hãy học cách tạo chứng chỉ bằng OpenSSL. Chứng chỉ là cần thiết để thiết lập giao tiếp an toàn và chứng minh danh tính của máy chủ hoặc khách hàng. Hãy làm theo các bước bên dưới để từ việc tạo khóa bí mật đến phát hành chứng chỉ tự ký và tạo chứng chỉ CA.
Khóa bí mật là gì?
Khóa bí mật đóng vai trò quan trọng trong mã hóa. Trong phương thức mã hóa khóa công khai, một cặp khóa công khai và khóa bí mật được sử dụng để thực hiện giao tiếp an toàn.
CSR (Yêu cầu ký chứng chỉ) là gì?
CSR là yêu cầu cần thiết để phát hành chứng chỉ. CSR bao gồm thông tin khóa công khai và thông tin nhận dạng.
Ví dụ, nó giống như các tài liệu cần thiết khi xin hộ chiếu. Khi tạo CSR, bạn sẽ cần nhập thông tin sau.
Tên trường | Mô tả | Ví dụ |
---|---|---|
Country Name (C) | Nhập tên quốc gia bằng mã quốc gia gồm 2 ký tự. | JP |
State or Province Name (ST) | Nhập tên tỉnh hoặc thành phố. | Tokyo |
Locality Name (L) | Nhập tên quận hoặc huyện. | Minato-ku |
Organization Name (O) | Nhập tên công ty hoặc tổ chức. | Example Corp |
Organizational Unit Name (OU) | Nhập tên bộ phận. | IT Department |
Common Name (CN) | Nhập FQDN (Tên miền đầy đủ) của máy chủ. | www.example.com |
Email Address | Nhập địa chỉ email của người phụ trách. | admin@example.com |
Nhập thông tin này để tạo CSR.
openssl req -new -key private.key -out request.csr
Ví dụ về việc thực hiện khi tạo CSR:
openssl req -new -key private.key -out request.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU] JP
State or Province Name (full name) [Some-State] Tokyo
Locality Name (eg, city) [] Minato-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd] Example Corp
Organizational Unit Name (eg, section) [] IT Department
Common Name (e.g. server FQDN or YOUR name) [] www.example.com
Email Address [] admin@example.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []
An optional company name []
Các trường như A challenge password
và An optional company name
được yêu cầu nhập như thuộc tính bổ sung, nhưng vì chúng không trực tiếp liên quan đến bảo mật hay chức năng của chứng chỉ, bạn thường không cần phải nhập chúng. Nếu không cần thiết, hãy nhấn phím Enter để tiếp tục.
Các trường khác có thể được yêu cầu nhập bao gồm Subject Alternative Name (SAN)
. Điều này cho phép hỗ trợ nhiều tên miền với một chứng chỉ duy nhất. Để chỉ định điều này, thường thì việc sử dụng tệp cấu hình khi tạo CSR là phổ biến.
Tạo chứng chỉ tự ký
Chứng chỉ tự ký là chứng chỉ được phát hành bởi chính bạn, có thể được sử dụng cho thử nghiệm hoặc thí nghiệm. Cách tạo như sau:
Tên trường | Mô tả | Ví dụ |
---|---|---|
Country Name (C) | Nhập tên quốc gia bằng mã quốc gia gồm 2 ký tự. | JP |
State or Province Name (ST) | Nhập tên tỉnh hoặc thành phố. | Tokyo |
Locality Name (L) | Nhập tên quận hoặc huyện. | Minato-ku |
Organization Name (O) | Nhập tên công ty hoặc tổ chức. | Example Corp |
Organizational Unit Name (OU) | Nhập tên bộ phận. | IT Department |
Common Name (CN) | Nhập FQDN (Tên miền đầy đủ) của máy chủ. | www.example.com |
Email Address | Nhập địa chỉ email của người phụ trách. | admin@example.com |
Certificate Validity (days) | Nhập thời hạn chứng chỉ trong ngày. | 365 |
openssl req -new -newkey rsa:2048 -days 365 -nodes -keyout mykey.key -out mycert.csr
openssl x509 -req -in mycert.csr -signkey mykey.key -out mycert.crt
Phát hành chứng chỉ CA
Chứng chỉ CA là chứng chỉ được phát hành bởi một cơ quan chứng nhận đáng tin cậy, được sử dụng để bảo vệ an toàn cho giao tiếp trên Internet. Để tạo chứng chỉ CA, hãy làm theo các bước dưới đây.
Tạo khóa bí mật
Trước khi phát hành chứng chỉ CA, bạn sẽ tạo khóa bí mật của CA:
openssl genpkey -algorithm RSA -out ca.key
Phát hành chứng chỉ CA
Tiếp theo, hãy phát hành chứng chỉ tự ký cho CA. Nhập thông tin sau:
Tên trường | Mô tả | Ví dụ |
---|---|---|
Country Name (C) | Nhập tên quốc gia bằng mã quốc gia gồm 2 ký tự. | JP |
State or Province Name (ST) | Nhập tên tỉnh hoặc thành phố. | Tokyo |
Locality Name (L) | Nhập tên quận hoặc huyện. | Minato-ku |
Organization Name (O) | Nhập tên công ty hoặc tổ chức. | Example Corp |
Organizational Unit Name (OU) | Nhập tên bộ phận. | IT Department |
Common Name (CN) | Nhập FQDN (Tên miền đầy đủ) của máy chủ. | www.example.com |
Email Address | Nhập địa chỉ email của người phụ trách. | admin@example.com |
Certificate Validity (days) | Nhập thời hạn chứng chỉ trong ngày. | 365 |
openssl req -new -x509 -key ca.key -out ca.crt -days 365
Tạo chứng chỉ với cấu hình chi tiết (Tùy chọn)
Bạn có thể tạo chứng chỉ nâng cao hơn bằng cách sử dụng tệp cấu hình.
Tạo CSR bằng cách sử dụng tệp cấu hình
Bằng cách sử dụng tệp cấu hình, bạn có thể dễ dàng tạo yêu cầu chứng chỉ phức tạp.
- 1. Tạo tệp cấu hình (ví dụ:
csr_config.cnf
).
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = www.example.com
emailAddress = admin@example.com
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = www.example.com
DNS.2 = example.com
- 2. Sử dụng tệp cấu hình để tạo CSR.
openssl req -new -key private.key -out request.csr -config csr_config.cnf
Tạo chứng chỉ tự ký bằng cách sử dụng tệp cấu hình
Sử dụng tệp cấu hình cũng có thể tự động hóa việc tạo chứng chỉ tự ký.
- 1. Tạo tệp cấu hình (ví dụ:
selfsigned_config.cnf
).
[req] distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no
[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = www.example.com
emailAddress = admin@example.com
[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
```
- 2. Sử dụng tệp cấu hình để tạo chứng chỉ tự ký.
openssl req -x509 -key private.key -out selfsigned.crt -days 365 -config selfsigned_config.cnf
Tạo chứng chỉ CA bằng cách sử dụng tệp cấu hình
Việc phát hành chứng chỉ CA cũng có thể được thực hiện hiệu quả bằng cách sử dụng tệp cấu hình.
- 1. Tạo tệp cấu hình (ví dụ:
ca_config.cnf
).
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no
[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = Example CA
emailAddress = admin@example.com
[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
- 2. Sử dụng tệp cấu hình để tạo chứng chỉ CA.
openssl req -x509 -key ca.key -out ca.crt -days 3650 -config ca_config.cnf
Bằng cách này, bạn có thể lưu trữ các trường cần thiết khi tạo từng chứng chỉ trong tệp cấu hình, giúp tiết kiệm thời gian nhập thông tin giống nhau nhiều lần. Sử dụng tệp cấu hình cũng giúp đơn giản hóa quy trình tạo chứng chỉ và dễ dàng hơn để quản lý.
Quy trình thao tác: Thêm chứng chỉ SSL vào Apidog
Để đảm bảo bảo mật hơn cho API, một số API yêu cầu sử dụng chứng chỉ phục vụ. Điều này có nghĩa là khi gửi yêu cầu đến API, bạn cần đính kèm chứng chỉ khách hàng SSL trong yêu cầu đó.
Phần này sẽ giới thiệu quy trình các bước để thêm chứng chỉ khách hàng SSL vào API client và gửi yêu cầu để nhận phản hồi. Chúng tôi khuyến cáo bạn nên tiếp tục công việc với Apidog, một API client cho phép bạn dễ dàng thêm chứng chỉ SSL. Apidog là công cụ quản lý vòng đời API, cho phép bạn sử dụng các chức năng như nhận và lấy phản hồi từ API, tự động hóa thử nghiệm API và tạo máy chủ giả lập, đồng thời có thể dễ dàng nhận phản hồi từ máy chủ đã được SSL hóa.
Vậy, hãy tham khảo các bước sau để thêm chứng chỉ SSL vào API client và thực hiện mã hóa giao tiếp API.
Bước 1. Khởi động Apidog và mở API cần chứng chỉ khách hàng SSL.
Bước 2. Chuyển sang chế độ “Thiết kế”, chọn tab “Thay đổi” ở thanh menu trên cùng và nhấp vào “Cài đặt” trong tham số Request.
Bước 3. Nhấp vào “Quản lý chứng chỉ”.
① Bật chứng chỉ CA và tải lên tệp PEM.
② Nhấp vào “Thêm chứng chỉ khách hàng” và hoàn tất cài đặt cần thiết.
Tóm tắt
OpenSSL là công cụ không thể thiếu để bảo vệ an toàn cho thông tin giao tiếp trên Internet. Từ việc tạo chứng chỉ, mã hóa và giải mã cho đến tính toán băm, nó có thể đáp ứng nhiều mục đích khác nhau. Hãy ghi nhớ những thao tác cơ bản này để nâng cao kiến thức về bảo mật của bạn.