验证SSL证书的指纹?


26

我正在和一个Puppet代理和一个Puppet主玩,我注意到Puppet证书实用程序为我的代理的公钥提供了指纹,因为它已经要求签名:

$ puppet cert list
  "dockerduck" (SHA256) 1D:72:C5:42:A5:F4:1C:46:35:DB:65:66:B8:B8:06:28:7A:D4:40:FA:D2:D5:05:1A:8F:43:60:6C:CA:D1:FF:79

如何验证这是正确的密钥?

在Puppet代理上,使用a sha256sum给我带来了截然不同的东西:

$ sha256sum /var/lib/puppet/ssl/public_keys/dockerduck.pem
f1f1d198073c420af466ec05d3204752aaa59ebe3a2f593114da711a8897efa3

如果我没记错的话,证书会在实际密钥文件本身中提供其公共密钥的校验和。如何获得钥匙指纹?


1
证书的指纹不是pem文件的哈希,它是根据证书中以特定格式和顺序排列的特定字段计算得出的。
Dobes Vandermeer,2015年

Answers:


39

OpenSSL命令行实用程序可用于检查证书(以及私钥和许多其他东西)。要查看证书中的所有内容,您可以执行以下操作:

openssl x509 -in CERT.pem -noout -text

要获取SHA256指纹,请执行以下操作:

openssl x509 -in CERT.pem -noout -sha256 -fingerprint

1
unable to load certificate 140640672884384:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: TRUSTED CERTIFICATE有任何想法吗?
Naftuli Kay 2014年

@NaftuliTzviKay也许它们不是PEM格式。这些文件是什么样的?(或者,您可以生成不使用的测试并将其发布到某处吗?)
derobert 2014年

这是原始帖子中提到的公钥:pastebin.com/ae2Qtexc
Naftuli Kay 2014年

@NaftuliKay,您需要使用pem格式的证书。
M_AWADI

9

至少在Puppet 3.6中,确认代理指纹的最佳方法是在代理中运行以下命令:

puppet agent --fingerprint
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.