2011-03-02 219 views
25

最近Mercurial在连接到HTTPS服务器时有added证书验证。我试图在https://wiki.pydlnadms.googlecode.com/hg/上克隆一个googlecode项目的wiki资料库,但证书是*.googlecode.com。我认为这就是所谓的所有子通配符域和有效的印象,但我收到的错误:从命令行获取HTTPS服务器的证书指纹?

[email protected]:~/src$ hg clone https://wiki.pydlnadms.googlecode.com/hg/ pydlnadms-wiki 
abort: wiki.pydlnadms.googlecode.com certificate error: certificate is for *.googlecode.com 

据称,我需要将证书指纹添加到我的hgrc。 如何从命令行检索此指纹?

家长问:Hosting images on Google Code

+0

有这个问题,因为将证书只是一种变通方法。 http://code.google.com/p/support/issues/detail?id=4533 – Thien 2011-05-19 18:39:51

+0

如果您喜欢,请在上面放一个戒指......请参阅“upvote”按钮。 – 2012-02-03 09:15:15

回答

54

上的网页http://wiki.debuntu.org/wiki/OpenSSL#Retrieving_certificate_informations列出了命令行为(和打印出的相关信息)。从该页面和一些手册页的,好像你想要的是(对于bash):

openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin 

如果你想整个证书,离开关|符号及其之后的所有。

+1

添加更多的细节。本例中的将是“wiki.pydlnadms.googlecode.com:443”。 http://mercurial.selenic.com/wiki/CACertificates#Host_certificate_fingerprints提供了关于如何将这些文件放入.hgrc文件的说明。 – yanokwa 2011-03-18 21:18:24

+0

嗨,得到我的服务器的指纹,并添加[hostfingerprints] mydomain.com = 09:EA:A1:28:49:24:21 ...到/ etc/mercurial/hgrc,但试图克隆一个新创建的回购给我SSL:服务器证书验证失败[命令返回代码255周五9月14 22:31:09 2012]任何线索为什么?非常感谢! – razor7 2012-09-15 01:35:19

5

这是一个古老的线程,但有一个更简单的方法,我发现。假设你已经有CRT文件:

$ cat server.crt|openssl x509 -fingerprint 
MD5 Fingerprint=D1:BA:B0:17:66:6D:7F:42:7B:91:1E:22:7E:3A:27:D2 
7

这也就够了:

openssl x509 -fingerprint -in server.crt