Openssl

如何使用 openssl 從 Yubico 驗證 CA 證書?

  • December 3, 2015

我要驗證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 密鑰不受信任…

希望這可以幫助。

引用自:https://crypto.stackexchange.com/questions/30993