Cách tạo chứng chỉ SSL/TLS miễn phí với OpenSSL

Cần có chứng chỉ SSL/TLS để mã hóa dữ liệu được gửi qua giao tiếp internet. Nếu không mã hóa, dữ liệu đã gửi có thể bị tấn công bởi người trung gian. Chứng chỉ SSL/TLS thường là khóa cặp, khóa chung và khóa riêng, giải pháp mà dữ liệu được mã hóa bằng khóa chung và giải mã bằng khóa riêng.

Trong giao tiếp công khai, khóa chung bắt buộc phải được ký bởi CA (cơ quan cấp chứng chỉ) nhưng trong giao tiếp riêng tư, không cần phải được ký bởi bất kỳ CA nào. Nếu chúng tôi không ký khóa công khai bởi bất kỳ CA nào, trình duyệt sẽ hiển thị thông báo cảnh báo rằng chứng chỉ không đáng tin cậy. Mặc dù trình duyệt hiển thị thông báo suy yếu nhưng thông tin liên lạc vẫn được mã hóa và bảo mật.

Có rất nhiều công cụ để tạo chứng chỉ tự ký. Trong số đó, OpenSSL rất phổ biến và chứng chỉ SSL có thể được tạo mà không gặp rắc rối nào. Vì vậy, trong bài viết này, tôi sẽ hướng dẫn cách tạo chứng chỉ SSL miễn phí với OpenSSL trong Ubuntu Server.

Tạo chứng chỉ SSL miễn phí với OpenSSL

OpenSSL là một công cụ miễn phí có thể được sử dụng để tạo chứng chỉ SSL/TLS tự ký. OpenSSL thường được tích hợp sẵn trong hệ điều hành Linux. Vì vậy, nếu bạn đã cài đặt Ubuntu Server hoặc bất kỳ hệ điều hành Linux nào khác, bạn có thể dễ dàng tạo chứng chỉ SSL miễn phí với OpenSSL.

Để đảm bảo rằng hệ điều hành của bạn đã cài đặt OpenSSL, hãy đưa ra lệnh sau trong dấu nhắc lệnh của bạn.

sayeed@ubuntu:~$ openssl version -a

Nếu hệ thống của bạn đã cài đặt OpenSSL, bạn sẽ tìm thấy phiên bản OpenSSL của mình bằng lệnh trên. Nếu hệ thống của bạn đã cài đặt OpenSSL, bạn đã sẵn sàng chạy lệnh OpenSSL để tạo chứng chỉ SSL/TLS miễn phí.

Lúc đầu, chúng tôi sẽ tạo một tệp khóa mật khẩu sẽ được sử dụng để tạo khóa riêng. Vì vậy, hãy chạy lệnh sau để tạo tệp khóa mật khẩu.

sayeed@ubuntu:~$ openssl genrsa -des3 -passout pass:xnet@123 -out system.pass.key 2048

Lệnh trên sẽ tạo một tệp khóa mật khẩu có tên system.pass.key . Để đơn giản, tôi đã đặt tên tệp là hệ thống nhưng bạn có thể tự do đặt bất kỳ tên nào cho tệp của mình. Nếu bạn chạy lệnh ls, bạn sẽ thấy một tệp đã được tạo trong thư mục làm việc của mình.

sayeed@ubuntu:~$ ls
system.pass.key

Bây giờ chúng ta sẽ tạo tệp khóa riêng bằng lệnh OpenSSL. Vì vậy, hãy chạy lệnh OpenSSL sau để tạo tệp khóa riêng.

sayeed@ubuntu:~$ openssl rsa -passin pass:xnet@123 -in system.pass.key -out system.key

Lệnh trên sẽ tạo tệp khóa riêng có tên system.key . Tệp khóa cá nhân rất quan trọng và không nên chia sẻ với bất kỳ ai. Nếu bất kỳ ai lấy được khóa riêng của bạn, họ sẽ có thể giải mã dữ liệu được mã hóa của bạn. Vì vậy, hãy cẩn thận để lưu trữ khóa riêng của bạn một cách an toàn.

Bây giờ bạn sẽ tìm thấy hai tệp trong thư mục làm việc của mình. Một là tệp khóa mật khẩu và một tệp khác là tệp khóa riêng. Tập tin mật khẩu sẽ không được yêu cầu trong tương lai. Vì vậy, chúng tôi sẽ xóa tệp này bằng lệnh sau.

sayeed@ubuntu:~$ rm system.pass.key

Bây giờ chúng tôi sẽ tạo tệp CSR (Yêu cầu ký chứng chỉ) sẽ được yêu cầu để tạo tệp khóa công khai. Vì vậy, hãy chạy lệnh OpenSSL sau để tạo tệp CSR.

sayeed@ubuntu:~$ openssl req -new -key system.key -out system.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]:BD
State or Province Name (full name) [Some-State]:DHK
Locality Name (eg, city) []:DHK
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SystemZone
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:webserver
Email Address []:sayeed@systemzone.net

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Lệnh trên sẽ hỏi một số câu hỏi về chứng chỉ SSL của bạn như ví dụ trên. Vì vậy, hãy cung cấp thông tin sẽ được hỏi cho bạn.

Bây giờ chúng ta sẽ tạo tệp chứng chỉ khóa công khai bằng lệnh OpenSSL. Vì vậy, hãy chạy lệnh OpenSSL sau để tạo tệp chứng chỉ khóa công khai.

sayeed@ubuntu:~$ openssl x509 -req -days 365 -in system.csr -signkey system.key -out system.crt

Lệnh trên sẽ tạo tệp chứng chỉ khóa công khai có hiệu lực trong 365 ngày. Nhưng nếu bạn muốn, bạn có thể đặt thêm thời hạn hiệu lực.

Trong thư mục làm việc của bạn, bây giờ bạn sẽ tìm thấy ba tệp. Trong số đó, system.key và system.crt là tệp khóa riêng và khóa chung tương ứng.

sayeed@ubuntu:~$ ls
system.crt system.csr system.key

Giờ đây, bạn có thể sử dụng các tệp được tạo OpenSSL này cho Máy chủ web, Máy chủ email hoặc bất kỳ ứng dụng nào khác yêu cầu chứng chỉ SSL/TLS.

Dưới đây là một loạt các lệnh OpenSSL để bạn có thể tạo chứng chỉ SSL/TLS miễn phí một cách dễ dàng.

– openssl genrsa -des3 -passout pass:xnet@123 -out [filename].pass.key 2048
– openssl rsa -passin pass:xnet@123 -in [filename].pass.key -out [filename].key
– rm [filename].pass.key
– openssl req -new -key [filename].key -out [filename].csr
– openssl x509 -req -days [numdays] -in [filename].csr -signkey [filename].key -out [filename].crt

Thay thế [tên tệp] và [số ngày] theo ý muốn của bạn và lưu các tệp đã tạo để đảm bảo an toàn cho ứng dụng của bạn.

Cách tạo chứng chỉ SSL/TLS miễn phí bằng công cụ OpenSSL đã được thảo luận trong bài viết này. Tôi hy vọng bây giờ bạn có thể tạo chứng chỉ SSL miễn phí cho ứng dụng của mình với OpenSSL. Tuy nhiên, nếu bạn gặp phải bất kỳ sự nhầm lẫn nào, vui lòng thảo luận trong nhận xét hoặc liên hệ với tôi từ trang Liên hệ .