Cách tạo chứng chỉ tự ký với OpenSSL | Học CNTT cùng FUNiX

Cách tạo chứng chỉ tự ký với OpenSSL

Chia sẻ kiến thức 08/09/2023

Hãy để khách truy cập vào trang web của bạn biết rằng bạn coi trọng vấn đề bảo mật của họ bằng cách tạo chứng chỉ SSL của riêng bạn bằng OpenSSL.

 

Chứng chỉ SSL/TLS rất cần thiết để bảo mật ứng dụng web hoặc máy chủ của bạn. Mặc dù một số cơ quan cấp chứng chỉ đáng tin cậy cung cấp chứng chỉ SSL/TLS với một khoản phí nhưng bạn cũng có thể tạo chứng chỉ tự ký bằng OpenSSL. 
 
Mặc dù chứng chỉ tự ký thiếu sự chứng thực của cơ quan đáng tin cậy nhưng chúng vẫn có thể mã hóa lưu lượng truy cập web của bạn. Vậy làm cách nào bạn có thể sử dụng OpenSSL để tạo chứng chỉ tự ký cho trang web hoặc máy chủ của mình?
VIDEO MUO TRONG NGÀY

 
 
 
 
Đóng
 
 
 
 
109,6K
 
Đánh giá XGIMI Horizon Ultra: Máy chiếu Dolby Vision đẹp mắt thích ứng với mọi phòng
 

 

Cách cài đặt OpenSSL

OpenSSL là phần mềm mã nguồn mở. Nhưng nếu bạn không có nền tảng lập trình và lo lắng về quá trình xây dựng thì nó có một chút thiết lập kỹ thuật. Để tránh điều này, bạn có thể tải xuống phiên bản mã OpenSSL mới nhất, được biên dịch đầy đủ và sẵn sàng cài đặt, từ trang web của slproweb.

Tại đây, hãy chọn tiện ích mở rộng MSI của phiên bản OpenSSL mới nhất phù hợp với hệ thống của bạn.

Ảnh chụp màn hình từ trang web slproweb để tải xuống OpenSSL

Ví dụ: hãy xem xét OpenSSL tại D:\OpenSSL-Win64 . Bạn có thể thay đổi điều này. Nếu quá trình cài đặt hoàn tất, hãy mở PowerShell với tư cách quản trị viên và điều hướng đến thư mục con có tên bin trong thư mục bạn đã cài đặt OpenSSL. Để thực hiện việc này, hãy sử dụng lệnh sau:

cd 'D:\OpenSSL-Win64\bin'

Bây giờ bạn có quyền truy cập vào openssl.exe và có thể chạy nó theo cách bạn muốn.

Chạy lệnh phiên bản để xem openssl đã được cài đặt chưa

Tạo khóa riêng của bạn với OpenSSL

Bạn sẽ cần một khóa riêng để tạo chứng chỉ tự ký. Trong cùng thư mục bin, bạn có thể tạo khóa riêng này bằng cách nhập lệnh sau vào PowerShell sau khi bạn đã mở với tư cách quản trị viên.

 
openssl.exe genrsa -des3 -out myPrivateKey.key 2048

Lệnh này sẽ tạo khóa riêng RSA được mã hóa 3DES dài 2048 bit thông qua OpenSSL. OpenSSL sẽ yêu cầu bạn nhập mật khẩu. Bạn nên sử dụng một mật khẩu mạnh và dễ nhớ. Sau khi nhập cùng một mật khẩu hai lần, bạn sẽ tạo thành công khóa riêng RSA của mình.

Đầu ra của lệnh được sử dụng để tạo khóa RSA

Bạn có thể tìm thấy khóa RSA riêng của mình với tên myPrivateKey.key .

Cách tạo tệp CSR với OpenSSL

Khóa riêng bạn tạo sẽ không đủ. Ngoài ra, bạn cần có tệp CSR để tạo chứng chỉ tự ký. Để tạo tệp CSR này, bạn cần nhập lệnh mới trong PowerShell:

openssl.exe req -new -key myPrivateKey.key -out myCertRequest.csr

OpenSSL cũng sẽ yêu cầu mật khẩu bạn đã nhập để tạo khóa riêng tại đây. Nó sẽ tiếp tục yêu cầu thông tin pháp lý và cá nhân của bạn. Hãy cẩn thận bạn nhập thông tin này một cách chính xác.

Đầu ra của lệnh được sử dụng để tạo tệp CSR
 

Ngoài ra, có thể thực hiện tất cả các thao tác cho đến nay chỉ bằng một dòng lệnh. Nếu sử dụng lệnh bên dưới, bạn có thể tạo cả khóa RSA riêng tư và tệp CSR cùng một lúc:

openssl.exe req -new -newkey rsa:2048 -nodes -keyout myPrivateKey2.key -out myCertRequest2.csr
Đầu ra của lệnh được sử dụng để tạo tệp RSA và CSR trong một lần

Bây giờ bạn có thể xem tệp có tên myCertRequest.csr trong thư mục liên quan. Tệp CSR bạn tạo này chứa một số thông tin về:

  • Cơ quan yêu cầu cấp chứng chỉ.
  • Common Name (tức là tên miền).
  • Khóa công khai (cho mục đích mã hóa).

Các tệp CSR bạn tạo cần được một số cơ quan có thẩm quyền xem xét và phê duyệt. Để thực hiện việc này, bạn cần gửi tệp CSR trực tiếp đến cơ quan cấp chứng chỉ hoặc các tổ chức trung gian khác.

Các cơ quan chức năng và nhà môi giới này kiểm tra xem thông tin bạn cung cấp có chính xác hay không, tùy thuộc vào tính chất của chứng chỉ mà bạn muốn. Bạn cũng có thể cần gửi một số tài liệu ngoại tuyến (fax, thư, v.v.) để chứng minh thông tin đó có đúng hay không.

Chuẩn bị giấy chứng nhận của cơ quan chứng nhận

Khi bạn gửi tệp CSR mà bạn đã tạo cho cơ quan cấp chứng chỉ hợp lệ, cơ quan cấp chứng chỉ sẽ ký vào tệp và gửi chứng chỉ đến tổ chức hoặc cá nhân yêu cầu. Khi làm như vậy, cơ quan chứng nhận (còn được gọi là CA) cũng tạo tệp PEM từ tệp CSR và RSA. Tệp PEM là tệp cuối cùng cần thiết cho chứng chỉ tự ký. Các giai đoạn này đảm bảo rằng chứng chỉ SSL đáng tin cậy và an toàn .

Bạn cũng có thể tự tạo tệp PEM bằng OpenSSL. Tuy nhiên, điều này có thể gây ra rủi ro tiềm ẩn đối với tính bảo mật của chứng chỉ. Ngoài ra, việc chứng chỉ của bạn không thể xác minh được có thể khiến chứng chỉ không hoạt động trong một số ứng dụng và môi trường. Vì vậy, đối với ví dụ về chứng chỉ tự ký này, chúng ta có thể sử dụng tệp PEM giả, nhưng tất nhiên, điều này là không thể trong thế giới thực.

Hiện tại, hãy tưởng tượng một tệp PEM có tên myPemKey.pem đến từ cơ quan cấp chứng chỉ chính thức. Bạn có thể sử dụng lệnh sau để tạo tệp PEM cho chính mình:

 
openssl x509 -req -sha256 -days 365 -in myCertRequest.csr -signkey myPrivateKey.key -out myPemKey.pem

Nếu bạn có một tệp như vậy, lệnh bạn nên sử dụng cho chứng chỉ tự ký của mình sẽ là:

openssl.exe x509 -req -days 365 -in myCertRequest.csr -signkey myPemKey.pem -out mySelfSignedCert.cer

Lệnh này có nghĩa là tệp CSR được ký bằng khóa riêng có tên myPemKey.pem, có giá trị trong 365 ngày. Kết quả là bạn tạo một tệp chứng chỉ có tên mySelfSignedCert.cer.

Hình ảnh chứng chỉ tự ký tồn tại trong thư mục

Thông tin chứng chỉ tự ký

Bạn có thể sử dụng lệnh sau để kiểm tra thông tin trên chứng chỉ tự ký mà bạn đã tạo:

openssl.exe x509 -noout -text -in mySelfSignedCert.cer

Điều này sẽ cho bạn thấy tất cả các thông tin có trong chứng chỉ. Có thể thấy rất nhiều thông tin như thông tin công ty hoặc cá nhân và các thuật toán được sử dụng trong chứng chỉ.

Điều gì sẽ xảy ra nếu Chứng chỉ tự ký không được Cơ quan chứng nhận ký?

Điều cần thiết là phải kiểm tra các chứng chỉ tự ký mà bạn tạo và xác nhận rằng chúng an toàn. Nhà cung cấp chứng chỉ bên thứ ba (tức là CA) thường thực hiện việc này. Nếu bạn không có chứng chỉ được cơ quan cấp chứng chỉ bên thứ ba ký và phê duyệt và bạn sử dụng chứng chỉ không được phê duyệt này thì bạn sẽ gặp phải một số vấn đề bảo mật.

Ví dụ: tin tặc có thể sử dụng chứng chỉ tự ký của bạn để tạo bản sao giả mạo của một trang web. Điều này cho phép kẻ tấn công đánh cắp thông tin của người dùng. Chúng cũng có thể lấy tên người dùng, mật khẩu hoặc thông tin nhạy cảm khác của người dùng.

Để đảm bảo tính bảo mật của người dùng, các trang web và các dịch vụ khác thường cần sử dụng chứng chỉ được CA chứng nhận thực sự. Điều này đảm bảo rằng dữ liệu của người dùng được mã hóa và đang kết nối với đúng máy chủ.

Tạo chứng chỉ tự ký trên Windows

Như bạn có thể thấy, việc tạo chứng chỉ tự ký trên Windows bằng OpenSSL khá đơn giản. Nhưng hãy nhớ rằng bạn cũng sẽ cần sự chấp thuận của cơ quan chứng nhận.

Tuy nhiên, việc tạo chứng chỉ như vậy cho thấy bạn coi trọng vấn đề bảo mật của người dùng, nghĩa là họ sẽ tin tưởng bạn, trang web và thương hiệu của bạn hơn.

Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/create-self-signed-certificate/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại