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 tải chứng chỉ lên một kho khoá hoặc kho lưu trữ 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à có thể áp dụng trên mọi môi trường có hỗ trợ 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õ những chủ đề sau:
- Nếu bạn chưa hiểu rõ về chuỗi chứng chỉ, hãy đọc bài viết Chuỗi chứng chỉ.
- Nếu bạn chưa quen với thư viện OpenSSL, hãy đọc OpenSSL.
- Nếu bạn muốn 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 ứng dụng OpenSSL mới nhất.
- Đảm bảo 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 bài viết 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ủ thể chứng chỉ và người phát hành cho chuỗi hoàn chỉnh
Để 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ể chứng chỉ và người phát hành chứng chỉ
- Xác minh chủ thể chứng chỉ và hàm băm của người cấp chứng chỉ
- Xác minh thời gian 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 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ủ nơi ứng dụng OpenSSL tồn tại.
- 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ỉ thực thể:
entity.pem
-
Chứng chỉ trung gian:
intermediate.pem
-
Chứng chỉ gốc:
root.pem
Hình sau đây cho thấy một chuỗi chứng chỉ mẫu:
Xác minh chủ thể chứng chỉ và người phát hành chứng chỉ
Phần này mô tả cách lấy chủ đề và người 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 đây để nhận
Subject
vàIssuer
cho từng chứng chỉ trong chuỗi từentity
đếnroot
và xác minh rằng chúng 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ủ những nguyên tắc sau:
-
Subject
của mỗi chứng chỉ khớp vớiIssuer
của chứng chỉ trước đó trong chuỗi (ngoại trừ chứng chỉEntity
). -
Subject
vàIssuer
là giống nhau đối với chứng chỉ gốc.
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 ba 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.com
Chứ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 1O1
Chứ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 = GlobalSign
Trong ví dụ trên, hãy lưu ý những điều sau:
-
Subject
của chứng chỉ trung gian khớp vớiIssuer
của chứng chỉ thực thể. -
Subject
của chứng chỉ gốc khớp vớiIssuer
của chứng chỉ trung gian. -
Subject
vàIssuer
giố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 hàm băm của người phát hành và chủ thể chứng chỉ
Phần này giải thích cách lấy hàm băm của chủ đề và người 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 trình tự băm của chứng chỉ vì việc này có thể giúp xác định các vấn đề như Common Name (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 đây để lấy trình tự
hash
cho từng chứng chỉ trong chuỗi từentity
đếnroot
và 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:
-
Subject
của mỗi chứng chỉ khớp vớiIssuer
của chứng chỉ trước đó trong chuỗi (ngoại trừ chứng chỉEntity
). -
Subject
vàIssuer
là giống nhau đối với chứng chỉ gốc. -
subject hash
của chứng chỉ trung gian khớp vớiissuer hash
của chứng chỉ thực thể. -
subject hash
của chứng chỉ gốc khớp vớiissuer hash
của chứng chỉ nhà phát hành. -
subject
vàissuer hash
giố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ỉ được coi là đầy đủ 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 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ụ 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 thời gian 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ả chứng chỉ trong chuỗi đã hết hạn hay chưa 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ỉ.
- Nhận thông tin về 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 để biết 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
và xác minh rằng tất cả các chứng chỉ
trong chuỗi đều 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 thời hạn chứng chỉ mẫu đến hết 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 vào N seconds
tới. Thao tác này sẽ trả về trạng thái hết hạn của chứng chỉ trong bối cảnh ngày hiện tại trên 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 hạn chứng chỉ mẫu thông qua tuỳ chọn kiểm tra
Lệnh sau 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 expire
cho biết chứng chỉ chưa hết hạn.