Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Tài liệu này giải thích cách xác thực chuỗi chứng chỉ trước khi bạn tải chứng chỉ lên kho khoá hoặc kho tin cậy trong Apigee Edge. Quá trình này dựa trên Bộ công cụ OpenSSL để xác thực chứng chỉ chuỗi và được áp dụng trên mọi môi trường có OpenSSL.
Trước khi bắt đầu
Trước khi làm theo 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 hiểu rõ về chuỗi chứng chỉ, hãy đọc Chuỗi niềm tin.
- Nếu bạn chưa hiểu rõ về thư viện OpenSSL, hãy đọc bài viết này OpenSSL.
- Nếu bạn 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 chứng chỉ ở định dạng PEM. Nếu chứng chỉ không ở định dạng PEM, hãy sử dụng hướng dẫn trong Chuyển đổi các 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ủ thể chứng chỉ và nhà phát hành chứng chỉ cho toàn bộ chuỗi
Để xác thực chuỗi chứng chỉ bằng lệnh OpenSSL, hãy hoàn tất các bước được mô tả trong các phần sau:
- Phân tách chuỗi chứng chỉ
- Xác minh chủ thể 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 nhà phát hành
- Xác minh ngày hết hạn của chứng chỉ
Tách chuỗi chứng chỉ
Trước khi xác thực chứng chỉ, bạn cần tách chuỗi chứng chỉ thành các bằng cách làm theo các bước sau:
- Đăng nhập vào máy chủ nơi có ứng dụng OpenSSL.
- Tách 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 dưới đây minh hoạ một chuỗi chứng chỉ mẫu:
Xác minh chủ thể và người phát hành chứng chỉ
Phần này mô tả cách yêu cầu chủ thể và nhà phát hành chứng chỉ cũng như xác minh rằng bạn có một chuỗi chứng chỉ hợp lệ.
-
Chạy lệnh OpenSSL sau để lấy
SubjectvàIssuercho mỗi chứng chỉ trong chuỗi từentityvàorootvà xác minh rằng chúng tạo thành một chuỗi chứng chỉ phù 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). -
Chứng chỉ gốc
SubjectvàIssuergiống nhau.
Nếu các chứng chỉ trong chuỗi tuân thủ các 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ỉ pháp nhân
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ụ bên 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ỉ pháp nhân. -
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.
Từ 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 chủ đề chứng chỉ và hàm băm của nhà phát hành
Phần này giải thích cách lấy hàm băm về đối tượng cũng như nhà phát hành chứng chỉ và xác minh rằng bạn có một chuỗi chứng chỉ hợp lệ.
Việc xác minh trình tự băm của chứng chỉ luôn là một phương pháp hay vì điều này có thể giúp ích trong xác định các vấn đề như Tên phổ biến (CN) của chứng chỉ có khoảng trống không mong muốn hoặc ký tự đặc biệt.
- Chạy lệnh OpenSSL sau để nhận trình tự
hashcho mỗi lệnh trong chuỗi từentityđếnrootvà xác minh rằng chúng để tạo một chuỗi chứng chỉ phù 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ỉ trong chuỗi (ngoại trừ chứng chỉEntity). -
Chứng chỉ gốc
SubjectvàIssuergiống nhau. -
subject hashcủa chứng chỉ trung gian khớp vớiissuer hashcủa thực thể chứng chỉ. -
subject hashcủa chứng chỉ gốc khớp vớiissuer hashcủa chứng chỉ của nhà 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ủ các nguyên tắc này thì chuỗi chứng chỉ sẽ là hoàn chỉnh và hợp lệ.
Xác thực chuỗi chứng chỉ mẫu thông qua trình tự 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 ba 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ụ bên trên, hãy lưu ý những điều sau:
Từ 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 có phải tất cả chứng chỉ trong chuỗi đều hết hạn bằ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 để biết ngày bắt đầu và ngày kết thúc cho mỗi chứng chỉ
trong chuỗi từ entity đến root và xác minh rằng tất cả chứng chỉ
trong chuỗi đang có hiệu lực (ngày bắt đầu trước hôm nay) và chưa hết hạn.
Xác thực ngày hết hạn 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 để kiểm tra xem chứng chỉ đã hết hạn hay chưa hoặc
sẽ hết hạn sau N seconds nữa. Thao tác này sẽ trả về trạng thái hết hạn của
chứng chỉ trong ngữ cảnh ngày hiện tại của hệ thống.
openssl x509 -checkend <N Seconds> -noout -in certificate
Trong đó certificate là tên của chứng chỉ.
Xác thực thời gian hết hạn chứng chỉ mẫu thông qua tuỳ chọn kiểm tra
Lệnh sau đây dùng 0 seconds để kiểm tra xem chứng chỉ đã được đọc hay chưa
đã 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 rằng
chứng chỉ chưa hết hạn.