パスワードを忘れた? アカウント作成
406152 journal

Oliverの日記: SubversionとHTTPSと独自CA

日記 by Oliver

バージョン管理にSubversionを使っていると、一般的なリモートからのリポジトリアクセス手段はWebDAVだ。(最近、over SSHなんてのもできた) そして、当然ながらユーザ認証等の安全の為にHTTPじゃなくてHTTPSで。その際に問題になるのがサーバのCertificateだ。Self-signedなCertificateやうちみたいに独自のCAを使っているところは少なくないはずだ。そんな時には最近のSubversionは当然ながら、Error validating server certificate: Unknown certificate issuer. Accept? (y/N) と聞いてくる。/etc/ssl/certsに放り込んであるCA Certは読んでくれないみたいなので、この質問を回避する方法をドキュメントで探すが載ってない(減点2)ので、ソースをサクっと覗く。WebDAV部分にはlibneonが使われている => neonのドキュメント(良質)のSSL設定部分からne_ssl_load_ca()をみつける => Subversionのソースにgrep => libsvn_ra_dav/session.c => 直前に読まれる設定のトークンをsvn_config.hからゲット。読んだことないソースでも探しものは案外簡単にみつかるものだ。恐がらずにソースを読もう!で、結果は~/.subversion/serversに

[global]
ssl-authorities-file = /etc/ssl/certs/my_ca.pem
ssl-ignore-unknown-ca = true

のどちらかを書いておけばいい。望ましいのはもちろん前者。

libsvn_ra_dav/session.c:svn_ra_dav__open()でne_ssl_load_default_ca()も呼んでくれたら、/etc/ssl/certsは自動的に読まれて便利なのだが。明日はドイツは休日だし、暇だったら、パッチ作ってみるか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...