bitbucketを使用する際にSSLの警告が出るのを解消する

FreeBSDなどの一部のOSでは、bitbucketにあるMercurialのレポジトリをHTTPS経由で操作しようとすると警告が出る。

そのまま無視して使うことも可能だが、鬱陶しいので原因を解消する。

/home/mapi% hg clone https://mapi@bitbucket.org/mapi/poem
警告: bitbucket.org の証明書(fingerprint は 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe)検証は省略 (設定ファイルの hostfingerprints ないし web.cacerts 設定を確認のこと)
HTTP 認証を要求しました
認証領域: Bitbucket.org HTTP
ユーザ: mapi
パスワード:

こんな警告がでる

ルート証明書を入れる

原因を要約すると「このサイトを身元を証明するルート証明書がありませんよ」ということなので、自分でルート証明書をインストールすれば良い。

Chromeなどでhttps://bitbucket.orgにアクセスして証明書情報を表示すると、Equifax Secure Certificate Authorityが上位の証明書と出る。

Equifax社の証明書は現在GeoTrustが管理しているのようなので、そちらより入手する。

http://www.geotrust.com/resources/root-certificates/index.html

Root 1 - Equifax Secure Certificate Authorityのところからダウンロードする。2種類のファイル形式で提供されているが、気にせず1番目のリンクからDLしたら使えた。

ダウンロードしたファイルはFreeBSDならば /usr/local/share/mercurial 以下に置くのが良さそう。

証明書のパーミッションは適切に設定する。書き込み権限を他人に与えないこと。

mkdir -m 755 -p /usr/local/share/mercurial/certs
cd /usr/local/share/mercurial/certs
fetch http://www.geotrust.com/resources/....
chmod 644 Equifax_Secure_Certificate_Authority.cer

以下を~/.hgrcあたりに追記する

[web]
cacerts = /usr/local/share/mercurial/certs/Equifax_Secure_Certificate_Authority.cer

以上の作業で警告がでなくなる