Mat*_*ner 31 https mercurial command-line google-code certificate
最近,Mercurial 在连接到HTTPS服务器时添加了证书验证.我正在尝试克隆googlecode项目的wiki存储库https://wiki.pydlnadms.googlecode.com/hg/,但证书适用于*.googlecode.com.我的印象是,这被称为通配符域,对所有子域都有效,但我收到错误:
matt@stanley:~/src$ hg clone https://wiki.pydlnadms.googlecode.com/hg/ pydlnadms-wiki
abort: wiki.pydlnadms.googlecode.com certificate error: certificate is for *.googlecode.com
Run Code Online (Sandbox Code Playgroud)
据称我需要将证书指纹添加到我的hgrc.如何从命令行检索此指纹?
家长问题:在Google Code上托管图片
Jer*_*ock 65
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
Run Code Online (Sandbox Code Playgroud)
如果您需要整个证书,请不要使用|符号及其后的所有内容.
小智 6
这是一个老线程,但我找到了一种更简单的方法.假设你有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
Run Code Online (Sandbox Code Playgroud)
从 Mercurial 3.9 开始,Mercurial 需要更安全的 SHA-256 指纹,而不是之前版本中的 SHA-1。 Jeremiah 的回答解释了如何计算 SHA-1 指纹。正如 J.Money 的评论所指出的,现在必须添加标志-sha256才能获得正确的指纹。
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
Run Code Online (Sandbox Code Playgroud)
其中<host>:<port>应酌情替换。(要回答最初的问题,可以使用wiki.pydlnadms.googlecode.com:443,如 yanokwa 所指出的。) 您必须在 URL 中省略https://,否则您将收到错误Expecting: TRUSTED CERTIFICATE。
然后,可以将生成的 SHA-256 指纹添加到 Mercurial 的全局设置文件( ~/.hgrc)。
| 归档时间: |
|
| 查看次数: |
30880 次 |
| 最近记录: |