Openssl
如何使用 openssl 從 Yubico 驗證 CA 證書?
我要驗證Yubico 的 CA 證書。我從
-----BEGIN CERTIFICATE-----
在以 .-----END CERTIFICATE-----
結尾的文件中.pem
。然後我想openssl verify test.pem
在命令行中驗證這一點(test.pem 是我的證書文件)。我有test.pem: CN = Yubico U2F Root CA Serial 457200631 error 18 at 0 depth lookup:self signed certificate OK
我對 openssl 和 openSUSE 很陌生,所以我不知道如何解決這個問題。我的目標是根據這個 CA 文件驗證證書。但首先我想消除這個錯誤。
好吧,他們說他們使用 gpg 對文件(yubico-utf-ca-certs.txt)進行簽名,並且簽名在連結文件中。所以
gpg --verify yubico-u2f-ca-certs.txt.sig yubico-u2f-ca-certs.txt gpg: Signature made Tue Sep 2 11:18:24 2014 CEST using RSA key ID 32F8119D gpg: requesting key 32F8119D from hkp server keys.gnupg.net gpg: key 54265E8C: public key "Simon Josefsson <simon@josefsson.org>" imported gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2019-08-28 gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) gpg: Good signature from "Simon Josefsson <simon@josefsson.org>" gpg: aka "Simon Josefsson <simon@yubico.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 9AA9 BDB1 1BB1 B99A 2128 5A33 0664 A769 5426 5E8C Subkey fingerprint: 9941 5CE1 905D 0E55 A9F8 8026 860B 7FBB 32F8 119D
好的。這表明有問題的文件是由 Yubico 的某個人(有效地)簽署的,看起來是這樣。
證書本身 (some_cert.pem) 是自簽名的,因此必須告訴 openssl 信任它:“驗證”檢查證書鏈,但這裡的鏈立即結束:證書自己簽名。在這種情況下,您要檢查簽名(但這並沒有說明證書的來源,任何人都可以使用 Yubico 的名義製作自簽名證書!),所以我們可以這樣做
openssl verify -trusted some_cert.pem -check_ss_sig some_cert.pem
確實說好的(它說檢查最後一個(僅此處)連結,即自簽名連結,並明確信任簽名者;通常有一個受信任證書的目錄,openssl 知道或需要在命令行參數。)。
檢查證書(您現在信任其來源,因為它是由 gpg 等簽名的)並檢查簽名,例如做
openssl x509 -in some_cert.pem -noout -text
它輸出包括序列號在內的所有欄位,序列號也在簽名的文本文件中。所以現在你看到一切本身都是一致的。但是您必須相信 gpg 密鑰(來自密鑰伺服器)以及文件託管在站點上的事實等。根據我的 gpg 安裝,gpg 密鑰不受信任…
希望這可以幫助。