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ột chuỗi 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 trong Apigee Edge. Quy trình này dựa vào bộ công cụ OpenSSL để xác thực chuỗi chứng chỉ và áp dụng cho mọi môi trường có OpenSSL.
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 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 chứng chỉ không ở định dạng PEM, hãy làm theo hướng dẫn trong phần Chuyển đổi chứng chỉ sang định dạng được hỗ trợ để chuyển đổi chứng chỉ sang định dạng PEM.
Xác thực chủ đề và tổ chức phát hành chứng chỉ cho toàn bộ chuỗi
Để xác thực chuỗi chứng chỉ bằng các lệnh OpenSSL, hãy hoàn tất các bước được mô tả trong các phần sau:
- Chia chuỗi chứng chỉ
- Xác minh chủ đề và tổ chức phát hành chứng chỉ
- Xác minh chủ đề chứng chỉ và hàm băm của tổ chức phát hành
- Xác minh thời hạn hết hiệu lực của chứng chỉ
Phân chia chuỗi chứng chỉ
Trước khi xác thực chứng chỉ, bạn cần chia chuỗi chứng chỉ thành các chứng chỉ riêng biệt theo các bước sau:
- Đăng nhập vào máy chủ có ứng dụng OpenSSL.
- Chia chuỗi chứng chỉ thành các chứng chỉ sau (nếu chưa thực hiện):
-
Chứng chỉ pháp nhân:
entity.pem -
Chứng chỉ trung gian:
intermediate.pem -
Chứng chỉ gốc:
root.pem
Hình sau đây minh hoạ một chuỗi chứng chỉ mẫu:
Xác minh chủ đề và đơn vị phát hành chứng chỉ
Phần này mô tả cách lấy chủ đề và tổ chức phát hành của chứng chỉ, đồng thời xác minh rằng bạn có một chuỗi chứng chỉ hợp lệ.
-
Chạy lệnh OpenSSL sau đây để lấy
SubjectvàIssuercho từng chứng chỉ trong chuỗi từentityđếnroot, đồng thời xác minh rằng các chứng chỉ này tạo thành một chuỗi chứng chỉ thích hợp:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'Trong đó certificate là tên của chứng chỉ.
-
Xác minh rằng các chứng chỉ trong chuỗi tuân thủ các nguyên tắc sau:
-
Subjectcủa mỗi chứng chỉ khớp vớiIssuercủa chứng chỉ trước đó trong chuỗi (ngoại trừ chứng chỉEntity). -
SubjectvàIssuergiống nhau đối với chứng chỉ gốc.
Nếu các chứng chỉ trong chuỗi tuân thủ những nguyên tắc này, thì chuỗi chứng chỉ đó được coi là hoàn chỉnh và hợp lệ.
Xác thực chuỗi chứng chỉ mẫu
Ví dụ sau đây là kết quả của các lệnh OpenSSL cho một chuỗi chứng chỉ mẫu chứa 3 chứng chỉ:
Chứng chỉ thực thể
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.comChứng chỉ trung gian
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1Chứng chỉ gốc
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSignTrong ví dụ minh hoạ ở trên, hãy lưu ý những điều sau:
-
Subjectcủa chứng chỉ trung gian khớp vớiIssuercủa chứng chỉ thực thể. -
Subjectcủa chứng chỉ gốc khớp vớiIssuercủa chứng chỉ trung gian. -
SubjectvàIssuergiống nhau trong chứng chỉ gốc.
Trong ví dụ trên, bạn có thể xác nhận rằng chuỗi chứng chỉ mẫu là hợp lệ.
-
Xác minh tiêu đề chứng chỉ và hàm băm của tổ chức phát hành
Phần này giải thích cách lấy hàm băm của chủ thể và tổ chức phát hành chứng chỉ, đồng thời xác minh rằng bạn có một chuỗi chứng chỉ hợp lệ.
Bạn nên xác minh chuỗi băm của chứng chỉ vì việc này có thể giúp xác định các vấn đề như Tên chung (CN) của chứng chỉ có khoảng trắng hoặc ký tự đặc biệt không mong muốn.
- Chạy lệnh OpenSSL sau đây để lấy chuỗi
hashcho từng chứng chỉ trong chuỗi từentityđếnrootvà xác minh rằng chúng tạo thành một chuỗi chứng chỉ thích hợp. - Xác minh rằng các chứng chỉ trong chuỗi tuân thủ các nguyên tắc sau:
-
Subjectcủa mỗi chứng chỉ khớp vớiIssuercủa chứng chỉ trước đó trong chuỗi (ngoại trừ chứng chỉEntity). -
SubjectvàIssuergiống nhau đối với chứng chỉ gốc. -
subject hashcủa chứng chỉ trung gian khớp vớiissuer hashcủa chứng chỉ thực thể. -
subject hashcủa chứng chỉ gốc khớp vớiissuer hashcủa chứng chỉ của tổ chức phát hành. -
subjectvàissuer hashgiống nhau trong chứng chỉ gốc.
openssl x509 -hash -issuer_hash -noout -in certificate
Trong đó certificate là tên của chứng chỉ.
Nếu các chứng chỉ trong chuỗi tuân thủ những nguyên tắc này, thì chuỗi chứng chỉ đó được coi là hoàn chỉnh và hợp lệ.
Ví dụ về việc xác thực chuỗi chứng chỉ thông qua chuỗi hàm băm
Ví dụ sau đây là kết quả của các lệnh OpenSSL cho một chuỗi chứng chỉ mẫu chứa 3 chứng chỉ:
openssl x509 -in entity.pem -hash -issuer_hash -noout
c54c66ba #this is subject hash
99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout
99bdd351
4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout
4a6481c9
4a6481c9
Trong ví dụ minh hoạ ở trên, hãy lưu ý những điều sau:
Trong ví dụ trên, bạn có thể xác nhận rằng chuỗi chứng chỉ mẫu là hợp lệ.
Xác minh ngày hết hạn của chứng chỉ
Phần này giải thích cách xác minh xem tất cả các chứng chỉ trong chuỗi có hết hạn hay không bằng cách sử dụng các phương thức sau:
- Lấy ngày bắt đầu và ngày kết thúc của chứng chỉ.
- Lấy trạng thái hết hạn.
Ngày bắt đầu và ngày kết thúc
Chạy lệnh OpenSSL sau đây để lấy ngày bắt đầu và ngày kết thúc cho từng chứng chỉ trong chuỗi từ entity đến root, đồng thời xác minh rằng tất cả chứng chỉ trong chuỗi đều có hiệu lực (ngày bắt đầu trước ngày hôm nay) và chưa hết hạn.
Xác thực ngày hết hạn của chứng chỉ mẫu thông qua ngày bắt đầu và ngày kết thúc
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
Trạng thái hết hạn
Chạy lệnh OpenSSL sau đây để kiểm tra xem chứng chỉ đã hết hạn hay sẽ hết hạn trong N seconds tiếp theo. Hàm này trả về trạng thái hết hạn của chứng chỉ trong bối cảnh ngày hệ thống hiện tại.
openssl x509 -checkend <N Seconds> -noout -in certificate
Trong đó certificate là tên của chứng chỉ.
Xác thực mẫu về thời hạn hiệu lực của chứng chỉ thông qua lựa chọn checkend
Lệnh sau đây sử dụng 0 seconds để kiểm tra xem chứng chỉ đã hết hạn hay chưa:
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
Trong ví dụ này, thông báo Certificate will not expirecho biết chứng chỉ chưa hết hạn.