2011-03-02 222 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