Trang chủ Thủ Thuật Tệp PEM là gì và bạn sử dụng nó như thế nào?

Tệp PEM là gì và bạn sử dụng nó như thế nào?

0
51
Person unlocking digital file with key.

Tệp PEM là gì và bạn sử dụng nó như thế nào?

Person unlocking digital file with key.
Shutterstock / FGC

PEM là một định dạng tệp vùng chứa thường được sử dụng để lưu trữ các khóa mật mã. Nó được sử dụng cho nhiều việc khác nhau, vì nó chỉ đơn giản xác định cấu trúc và kiểu mã hóa của tệp được sử dụng để lưu trữ một chút dữ liệu.

Tệp PEM là gì?

PEM chỉ là một tiêu chuẩn; chúng chứa văn bản và định dạng quy định rằng các tệp PEM bắt đầu bằng…

----- BEGIN <loại> -----

… Và kết thúc bằng:

----- HẾT <loại> -----

Mọi thứ ở giữa đều được mã hóa base64 (chữ hoa và chữ thường, chữ số, +/ ). Điều này tạo thành một khối dữ liệu có thể được sử dụng trong các chương trình khác. Một tệp PEM có thể chứa nhiều khối.

Điều này có thể được sử dụng để đại diện cho tất cả các loại dữ liệu, nhưng nó thường được sử dụng để mã hóa các tập tin khóa, chẳng hạn như khóa RSA được sử dụng cho SSH và chứng chỉ được sử dụng để mã hóa SSL. Tệp PEM sẽ cho bạn biết nó được sử dụng để làm gì trong tiêu đề; ví dụ: bạn có thể thấy tệp PEM bắt đầu bằng…

----- BẮT ĐẦU KHÓA RIÊNG TƯ RSA -----

… Theo sau là một chuỗi dữ liệu dài, đó là khóa cá nhân RSA thực tế.

Tệp PEM có chứng chỉ SSL

Các tệp PEM được sử dụng để lưu trữ chứng chỉ SSL và các khóa cá nhân liên quan của chúng. Nhiều chứng chỉ nằm trong chuỗi SSL đầy đủ và chúng hoạt động theo thứ tự sau:

  • Chứng chỉ người dùng cuối, được cơ quan cấp chứng chỉ (CA) gán cho tên miền của bạn. Đây là tệp bạn sử dụng trong nginx và Apache để mã hóa HTTPS.
  • Tối đa bốn chứng chỉ trung gian tùy chọn, được cấp cao hơn cấp cho các tổ chức cấp chứng chỉ nhỏ hơn.
  • Chứng chỉ gốc, chứng chỉ cao nhất trên chuỗi, do CA chính tự ký.
Quảng cáo

Trên thực tế, mỗi chứng chỉ được liệt kê trong một tệp PEM, sử dụng các khối riêng biệt:

----- CHỨNG NHẬN BẮT ĐẦU -----
  //người dùng cuối
----- GIẤY CHỨNG NHẬN KẾT THÚC -----
----- CHỨNG NHẬN BẮT ĐẦU -----
  //Trung gian
----- GIẤY CHỨNG NHẬN KẾT THÚC -----
----- CHỨNG NHẬN BẮT ĐẦU -----
  //nguồn gốc
----- GIẤY CHỨNG NHẬN KẾT THÚC -----

Bạn sẽ được cung cấp các tệp này từ nhà cung cấp SSL để sử dụng trong máy chủ web của mình. Ví dụ: certbot của certbot tạo các chứng chỉ sau, được đặt trong /etc/letsencrypt/live/your-domain-name/ :

cert.pem chain.pem fullchain.pem privkey.pem
  • cert.pem là chứng chỉ người dùng cuối.
  • chain.pem là phần còn lại của chuỗi; trong trường hợp này, đó chỉ là chứng chỉ gốc của LetsEncrypt.
  • fullchain.pemcert.pemchain.pem kết hợp. Đây là tệp được chuyển tới nginx với chỉ thị ssl_certificate
  • privkey.pem là một khóa cá nhân RSA được tạo cùng với chứng chỉ.

Chúng cũng có thể sử dụng phần mở rộng .crt nếu bạn đã tự ký chứng chỉ bằng OpenSSL, bạn sẽ nhận được tệp CRT chứ không phải PEM, mặc dù nội dung vẫn giống nhau và cách sử dụng sẽ giống nhau.

Để sử dụng chứng chỉ của mình, bạn sẽ phải chuyển chúng dưới dạng tham số cho máy chủ web của mình. Đối với nginx, bạn sẽ muốn chỉ định ssl_certificate (tệp PEM chuỗi đầy đủ) và ssl_certificate_key (tệp PEM khóa riêng RSA), sau khi bật SSL:

ssl_certificate /etc/letsencrypt/live/yourdomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain/privkey.pem;
Quảng cáo

Đối với Apache, thiết lập phần lớn là giống nhau, nhưng bạn sẽ cần phải sử dụng SSLCertificateFileSSLCertificateKeyFile chỉ thị:

SSLCertificateFile /etc/letsencrypt/live/yourdomain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem

Tệp PEM với SSH

Các tệp PEM cũng được sử dụng cho SSH. Nếu bạn đã từng chạy ssh-keygen để sử dụng ssh mà không cần mật khẩu, thì ~/.ssh/id_rsa là một tệp PEM, chỉ không có phần mở rộng.

Đáng chú ý nhất, Amazon Web Services cung cấp cho bạn một tệp PEM chứa khóa riêng tư bất cứ khi nào bạn tạo một phiên bản mới và bạn phải sử dụng khóa này để có thể SSH vào các phiên bản EC2 mới.

LIÊN QUAN: Cách thêm tệp EC2 PEM vào chuỗi khóa SSH của bạn

Bạn sẽ phải sử dụng cờ -i ssh để chỉ định rằng bạn muốn sử dụng khóa mới này thay vì id_rsa :

ssh -i keyfile.pem root @ host

Thao tác này sẽ giúp bạn đăng nhập vào máy chủ như bình thường, nhưng bạn sẽ phải chỉ định cờ này mỗi lần.

Một phương pháp dễ dàng hơn là thêm khóa cá nhân vào ssh-agent của bạn bằng ssh-add :

ssh-add keyfile.pem

Tuy nhiên, điều này không kéo dài qua các lần khởi động lại, vì vậy bạn sẽ cần chạy lệnh này khi khởi động hoặc thêm nó vào chuỗi khóa macOS của mình.

Quảng cáo

Tất nhiên, bạn cũng có thể chỉ cần thêm khóa công khai chính của mình vào ~/.ssh/authorized_keys sau khi bạn đã đăng nhập một lần, nhưng phương pháp này sẽ hoạt động hiệu quả đối với bất kỳ phiên bản mới nào về sau.

Cần lưu ý rằng bạn vẫn nên khóa máy chủ SSH của mình ngay cả khi bạn đang tự sử dụng khóa.

LIÊN QUAN: Chuyển tiếp đại lý SSH là gì và bạn sử dụng nó như thế nào?

How Deepfakes Are Powering a New Type of Cyber Crime

Deepfakes đang thúc đẩy một loại tội phạm mạng mới như thế nào

How to Migrate Away From GitLab Managed Kubernetes Apps

Cách di chuyển khỏi các ứng dụng Kubernetes được quản lý trên GitLab

What Are Git Pull Requests, And How Do You Use Them?

Yêu cầu kéo Git là gì, và bạn sử dụng chúng như thế nào?

How the New Intersection Types in PHP 8.1 Give You More Flexibility

Cách các kiểu giao điểm mới trong PHP 8.1 mang lại cho bạn sự linh hoạt hơn

How to Deploy Static Websites For Free With Surge.sh

Cách triển khai các trang web tĩnh miễn phí với Surge.sh

How to Use Multi-Threaded Processing in Bash Scripts

Cách sử dụng xử lý đa luồng trong Bash Scripts

Dịch từ: https://www.cloudsavvyit.com/1727/what-is-a-pem-file-and-how-do-you-use-it/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây