最近MercurialはHTTPSサーバーに接続するときに 追加 証明書の検証を行いました。 https://wiki.pydlnadms.googlecode.com/hg/
にあるgooglecodeプロジェクトのWikiリポジトリのクローンを作成しようとしていますが、証明書は*.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
申し立てによると、証明書のフィンガープリントをhgrcに追加する必要があります。 コマンドラインからこのフィンガープリントを取得するにはどうすればよいですか?
親の質問: Googleコードでの画像のホスティング
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
証明書全体が必要な場合は、|
記号とその後のすべて。
これでも十分です:
openssl x509 -fingerprint -in server.crt
これは古いスレッドですが、もっと簡単な方法があります。あなたが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
誰もこれについてコメントしていないので、サブドメインに関する混乱のいくつかを解決しようとしました:
証明書は* .googlecode.com用です。これはワイルドカードドメインと呼ばれ、すべてのサブドメインに有効であるという印象を受けました
あなたは部分的に正しいです。ワイルドカード証明書はすべてのdirectサブドメインに有効ですが、サブドメインのサブドメインには有効ではありません。
したがって、*.googlecode.com
はpydlnadms.googlecode.com
では有効ですが、wiki.pydlnadms.googlecode.com
では無効です。
そのためには、*.pydlnadms.googlecode.com
の証明書またはwiki.pydlnadms.googlecode.com
の非ワイルドカード証明書が必要です。
Mercurial 3.9以降 、以前のバージョンのSHA-1とは異なり、Mercurialではより安全なSHA-256フィンガープリントが必要です。 エレミヤの答え は、SHA-1フィンガープリントの計算方法を説明しています。 J.Moneyのコメントで指摘されているように、-sha256
フラグを使用して正しい指紋を取得します。
openssl s_client -connect <Host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
どこ <Host>:<port>
は適宜置き換えてください。 (元の質問に答えるには、wiki.pydlnadms.googlecode.com:443
、yanokwaが指摘したように。)https://
URLから、それ以外の場合はエラーExpecting: TRUSTED CERTIFICATE
。
次に、 結果のSHA-256フィンガープリントをMercurialのグローバル設定ファイルに追加 (~/.hgrc
)。