Openssl
使用 x509 目的命令時出現 OpenSSL 警告
我今天試圖找到我的根 CA,並使用
openssl x509 -in /path/to/certificate -purpose
.當我發現應該是我的根 CA 時,我得到了以下輸出:
Certificate purposes: SSL client : Yes SSL client CA : Yes (WARNING code=3) SSL server : Yes SSL server CA : Yes (WARNING code=3) Netscape SSL server : Yes Netscape SSL server CA : Yes (WARNING code=3) S/MIME signing : Yes S/MIME signing CA : Yes (WARNING code=3) S/MIME encryption : Yes S/MIME encryption CA : Yes (WARNING code=3) CRL signing : Yes CRL signing CA : Yes (WARNING code=3) Any Purpose : Yes Any Purpose CA : Yes OCSP helper : Yes OCSP helper CA : Yes (WARNING code=3) Time Stamp signing : No Time Stamp signing CA : Yes (WARNING code=3)
似乎 linux 的某些部分或其工具並沒有像人們想像的那樣有據可查。它找不到這個問題的答案,甚至這個網站三年前也無法回答(使用 - purpose 命令時的 OpenSSL 警告)。
我希望時代已經改變,現在這裡有人能夠回答這個問題是什麼
WARNING code=3
。如果有的話,也許還提供所有可能的警告消息及其原因的列表。
那是您自己的自簽名根 CA,還是較舊的 Verisign V1 根 CA 或類似的?因為那會產生警告。來自手冊(強調我的)
basicConstraints 擴展 CA 標誌用於確定證書是否可以用作 CA。如果 CA 標誌為真,則它是 CA,如果 CA 標誌為假,則它不是 CA。所有 CA 都應將 CA 標誌設置為 true。
如果 basicConstraints 擴展不存在,則證書被認為是“可能的 CA”,其他擴展將根據證書的預期用途進行檢查。**在這種情況下會給出警告,**因為證書實際上不應被視為 CA:但是允許它作為 CA 來解決一些損壞的軟體。
如果證書是 V1 證書(因此沒有副檔名)並且它是自簽名的,它也被假定為 CA,但再次給出警告:這是為了解決 Verisign 根的問題,這是 V1 自簽名證書.
這
code=3
可能與缺少X509 **v3擴展的事實有關。**至少這是快速掃描程式碼所暗示的: ./crypto/x509v3/v3_purp.c
:/*- * CA checks common to all purposes * return codes: * 0 not a CA * 1 is a CA * 2 basicConstraints absent so "maybe" a CA * 3 basicConstraints absent but self signed V1. * 4 basicConstraints absent but keyUsage present and keyCertSign asserted. */
完整下載幾個舊的 VeriSign 根證書會重現您的警告:
wget https://www.symantec.com/content/en/us/enterprise/verisign/roots/Class-3-Public-Primary-Certification-Authority-G2.pem openssl x509 -purpose -in Class-3-Public-Primary-Certification-Authority-G2.pem Certificate purposes: SSL client : Yes SSL client CA : Yes (WARNING code=3) SSL server : Yes SSL server CA : Yes (WARNING code=3) Netscape SSL server : Yes Netscape SSL server CA : Yes (WARNING code=3) S/MIME signing : Yes S/MIME signing CA : Yes (WARNING code=3) S/MIME encryption : Yes S/MIME encryption CA : Yes (WARNING code=3) CRL signing : Yes CRL signing CA : Yes (WARNING code=3) Any Purpose : Yes Any Purpose CA : Yes OCSP helper : Yes OCSP helper CA : Yes (WARNING code=3) -----BEGIN CERTIFICATE----- MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5 MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4 pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0 13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY oJ2daZH9 -----END CERTIFICATE-----