Xác thực mục đích của chứng chỉ

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Tài liệu này giải thích cách xác thực mục đích của một chứng chỉ trước khi bạn tải chứng chỉ đó lên một kho khoá hoặc kho lưu trữ đáng tin cậy. Quy trình này dựa vào OpenSSL để xác thực và có thể áp dụng trên mọi môi trường có OpenSSL.

Các chứng chỉ TLS thường được cấp cho một hoặc nhiều mục đích mà chúng có thể được dùng. Thông thường, việc này được thực hiện để hạn chế số lượng thao tác mà khoá công khai có trong chứng chỉ có thể dùng. Mục đích của chứng chỉ có trong các tiện ích chứng chỉ sau:

  • Sử dụng khoá
  • Sử dụng khoá mở rộng

Sử dụng khoá

Tiện ích sử dụng khoá xác định mục đích (ví dụ: mã hoá, chữ ký hoặc ký chứng chỉ) của khoá có trong chứng chỉ. Nếu khoá công khai được dùng để xác thực thực thể, thì tiện ích chứng chỉ phải có chế độ sử dụng khoá Chữ ký số.

Sau đây là các tiện ích sử dụng khoá khác nhau có sẵn cho chứng chỉ TLS được tạo bằng quy trình của Tổ chức phát hành chứng chỉ (CA):

  • Chữ ký số
  • Không thể chối bỏ
  • Mã hoá khoá
  • Mã hoá dữ liệu
  • Thoả thuận về khoá
  • Ký chứng chỉ
  • Ký CRL
  • Chỉ mã hoá
  • Chỉ giải mã

Để biết thêm thông tin về các tiện ích sử dụng khoá này, hãy xem RFC5280, Key Usage (RFC5280, Mức sử dụng khoá).

Sử dụng khoá mở rộng

Tiện ích này cho biết một hoặc nhiều mục đích mà khoá công khai được chứng nhận có thể được dùng, ngoài hoặc thay cho các mục đích cơ bản được chỉ ra trong tiện ích sử dụng khoá. Nhìn chung, tiện ích này sẽ chỉ xuất hiện trong các chứng chỉ thực thể cuối.

Sau đây là một số tiện ích sử dụng khoá mở rộng phổ biến:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

Khoá mở rộng có thể là quan trọng hoặc không quan trọng.

  • Nếu tiện ích là quan trọng, thì chứng chỉ chỉ được dùng cho (các) mục đích đã nêu. Nếu chứng chỉ được dùng cho mục đích khác, thì chứng chỉ đó sẽ vi phạm chính sách của CA.
  • Nếu tiện ích là không quan trọng, thì tiện ích này cho biết (các) mục đích dự kiến của khoá là cung cấp thông tin và không ngụ ý rằng CA hạn chế việc sử dụng khoá cho mục đích đã nêu. Tuy nhiên, các ứng dụng sử dụng chứng chỉ có thể yêu cầu bạn chỉ định một mục đích cụ thể để chứng chỉ được chấp nhận.

Nếu một chứng chỉ chứa cả trường sử dụng khoá và trường sử dụng khoá mở rộng dưới dạng quan trọng, thì cả hai trường phải được xử lý độc lập và chứng chỉ chỉ có thể được sử dụng cho mục đích đáp ứng cả hai giá trị sử dụng khoá. Tuy nhiên, nếu không có mục đích nào có thể đáp ứng cả hai giá trị sử dụng khoá, thì bạn không được sử dụng chứng chỉ đó cho bất kỳ mục đích nào.

Khi bạn mua chứng chỉ, hãy đảm bảo rằng chứng chỉ đó có cách sử dụng khoá phù hợp được xác định để đáp ứng các yêu cầu đối với chứng chỉ ứng dụng hoặc chứng chỉ máy chủ. Nếu không, cơ chế bắt tay TLS sẽ không thành công.

Mục đích Sử dụng khoá

(bắt buộc)

Sử dụng khoá mở rộng

(không bắt buộc)

Chứng chỉ thực thể máy chủ được dùng trong kho khoá của máy chủ ảo Apigee Edge
  • Chữ ký số
  • Mã hoá khoá hoặc thoả thuận về khoá
Xác thực máy chủ web TLS
Chứng chỉ thực thể ứng dụng được dùng trong truststore của máy chủ ảo trên Apigee Edge
  • Thoả thuận về khoá hoặc chữ ký số
Xác thực ứng dụng web TLS
Chứng chỉ thực thể máy chủ được dùng trong truststore của máy chủ đích Apigee Edge
  • Chữ ký số
  • Mã hoá khoá hoặc thoả thuận về khoá
Xác thực máy chủ web TLS
Chứng chỉ thực thể ứng dụng được dùng trong kho khoá của máy chủ đích trên Apigee Edge
  • Thoả thuận về khoá hoặc chữ ký số
Xác thực ứng dụng web TLS
Chứng chỉ trung gian và chứng chỉ gốc
  • Ký chứng chỉ
  • Ký danh sách thu hồi chứng chỉ (CRL)

Trước khi bắt đầu

Trước khi sử dụng các bước trong tài liệu này, hãy đảm bảo bạn hiểu rõ các chủ đề sau:

  • Nếu bạn chưa quen với chuỗi chứng chỉ, hãy đọc bài viết Chuỗi tin cậy.
  • Nếu bạn chưa quen với thư viện OpenSSL, hãy đọc phần OpenSSL
  • Nếu bạn muốn tìm hiểu thêm về các tiện ích sử dụng khoá và việc sử dụng khoá mở rộng, hãy đọc RFC5280.
  • Nếu muốn sử dụng các ví dụ về dòng lệnh trong hướng dẫn này, hãy cài đặt hoặc cập nhật lên phiên bản mới nhất của ứng dụng OpenSSL
  • Đảm bảo các chứng chỉ ở định dạng PEM. Nếu không, hãy chuyển đổi các chứng chỉ sang định dạng PEM.

Xác thực mục đích của chứng chỉ

Phần này mô tả các bước dùng để xác thực mục đích của chứng chỉ.

  1. Đăng nhập vào máy chủ có OpenSSL.
  2. Để lấy thông tin về việc sử dụng khoá của một chứng chỉ, hãy chạy lệnh OpenSSL sau:
    openssl x509 -noout -ext keyUsage < certificate

    Trong đó certificate là tên của chứng chỉ.

    Đầu ra mẫu

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  3. Nếu bắt buộc phải có một mục đích sử dụng khoá, thì mục đích đó sẽ được xác định là quan trọng như sau:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. Chạy lệnh sau để lấy mục đích sử dụng khoá mở rộng cho một chứng chỉ. Nếu việc sử dụng khoá mở rộng không được xác định là quan trọng, thì đó là một đề xuất chứ không phải là một yêu cầu bắt buộc.
    openssl x509 -noout -ext extendedKeyUsage < certificate

    Trong đó certificate là tên của chứng chỉ.

    Đầu ra mẫu

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication