openssl verify -CAfile vs -CApath:不同的行为?

时间:2018-08-10 19:36:58

标签: openssl certificate verify

使用“ openssl验证”验证证书链时,根据指定了-CAfile还是-CApath,我看到两种不同的行为。使用-CAfile,文件必须包含链中的所有证书,包括自签名根。使用-CApath时,该目录仅需要包含要验证的证书的颁发者;根证书不需要存在。

使用-CAfile:

$ ls -laR
.:
total 16
drwxr-xr-x.  3 tomiii tomiii 4096 Aug 10 12:27 . 
drwx------. 62 tomiii tomiii 4096 Aug 10 11:23 ..
drwxr-xr-x.  2 tomiii tomiii 4096 Aug 10 12:27 trusted
-rw-r--r--.  1 tomiii tomiii 1753 Aug 10 12:27 untrusted.pem

./trusted:
total 16
drwxr-xr-x. 2 tomiii tomiii 4096 Aug 10 12:27 . 
drwxr-xr-x. 3 tomiii tomiii 4096 Aug 10 12:27 ..
lrwxrwxrwx. 1 tomiii tomiii   16 Aug 10 12:27 05751b17.0 -> intermediate.pem
lrwxrwxrwx. 1 tomiii tomiii    8 Aug 10 12:27 b204d74a.0 -> root.pem
-rw-r--r--. 1 tomiii tomiii 1915 Aug 10 12:26 intermediate.pem
-rw-r--r--. 1 tomiii tomiii 1732 Aug 10 12:26 root.pem
$ openssl verify -CAfile trusted/intermediate.pem untrusted.pem
untrusted.pem: C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 SHA256 Code Signing CA
error 2 at 1 depth lookup:unable to get issuer certificate
$ openssl verify -CAfile <(cat trusted/*) untrusted.pem
untrusted.pem: OK

使用-CApath:

$ rm trusted/b204d74a.0 trusted/root.pem 
$ ls -laR
.:
total 16
drwxr-xr-x.  3 tomiii tomiii 4096 Aug 10 12:27 . 
drwx------. 62 tomiii tomiii 4096 Aug 10 11:23 ..
drwxr-xr-x.  2 tomiii tomiii 4096 Aug 10 12:29 trusted
-rw-r--r--.  1 tomiii tomiii 1753 Aug 10 12:27 untrusted.pem

./trusted:
total 12
drwxr-xr-x. 2 tomiii tomiii 4096 Aug 10 12:29 . 
drwxr-xr-x. 3 tomiii tomiii 4096 Aug 10 12:27 ..
lrwxrwxrwx. 1 tomiii tomiii   16 Aug 10 12:27 05751b17.0 -> intermediate.pem
-rw-r--r--. 1 tomiii tomiii 1915 Aug 10 12:26 intermediate.pem
$ openssl verify -CApath trusted untrusted.pem 
untrusted.pem: OK

我无法在OpenSSL文档中找到任何内容来解释-CApath本身为何信任中间证书,而-CAfile确实具有相同的信任并需要根证书才能验证链。为什么会有所不同?

0 个答案:

没有答案