« Apache2.2 + Tomcat6.0 | Main | SubversionとSSLクライアント証明書(2) »

2007.03.10

SubversionとSSLクライアント証明書

 WebDAVでクライアント証明書を試してみたのですが、ここでSubversion(サーバ&クライアント)+SSLクライアント証明書を組み合わせてみるとどうなるかの実験メモ。

 サーバはApache2.0系列でOpenSSLを用いてCA証明書・サーバ証明書・クライアント証明書を作成。Subversionリポジトリへブラウザからhttpsでアクセスしようとした際にクライアント証明書を確認するダイアログが表示されることを確認。

 とりあえず、これでサーバ側(&証明書)の準備は整ったので、後はSubversionクライアントからアクセスのテスト。使用したクライアントは、svn.exeそのものとTortoiseSVNで、まずはTortoiseSVNから。

 チェックアウトやリポジトリブラウザ等何らかのアクセスを行う際のリポジトリのパスとしてhttp://~ではなくhttps://~を指定すると、


  1. 使用するSSLクライアント証明書を選択する画面(ファイル選択ダイアログ)が表示される。
  2. アクセスする際に使用する証明書を選択後、クライアント証明書を読み込む際に必要なパスワードを入力するダイアログが表示されるので、必要なパスワードを入力。
  3. アクセスしようとしたリポジトリに対して、別途Basic認証等の設定が行われている場合、Basic認証用のID/PW入力ダイアログが表示される

ってな感じの動作をしました(サーバ証明書によっては、信頼するかどうかの確認ダイアログが表示されます)。

 SSLクライアント証明書のファイル選択ダイアログおよびそのパスワード入力ダイアログにおいて、「パスを保存する」「パスワードを保存する」のチェックボックスが入っているので、そこにチェックを入れておく(初期はチェックされていない状態)と、2回目以降は追加操作なしでアクセスできるようになります。ただ、パスだけが保存されている状態であとからパスワードを保存しようとした場合、うまく覚えてくれないような・・・何故?(パスを保存する際にパスワードの登録も行った場合は問題なく覚えたのですが) もしかしたら、使用していたTortoiseSVNのバージョンが少し古かったのかもしれませんが。

 ただ、クライアント証明書のパスおよびそのパスワードはレジストリに登録されていて、しかもパスワードは生の状態で登録されている(暗号化等は一切行われていない)ので、扱いには注意が必要かもしれません。なお、レジストリの場所は

  • \HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Servers\
  • \HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Servers\groups\
  • \HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Servers\hostname\
    あたりになります(パスワードは、Serversの部分にキー「ssl-client-cert-password」にて登録されています)。

    #この構造だと、複数のSSL証明書を使用する場合、どのように登録されるんでしょうね?(そこまではテストしていません)

  • |

    « Apache2.2 + Tomcat6.0 | Main | SubversionとSSLクライアント証明書(2) »

    Subversion・Trac・etc.」カテゴリの記事

    Comments

    Post a comment



    (Not displayed with comment.)


    Comments are moderated, and will not appear on this weblog until the author has approved them.



    TrackBack


    Listed below are links to weblogs that reference SubversionとSSLクライアント証明書:

    » SubversionとSSLクライアント証明書(2) [気の向くままに・・・]
     SubversionとSSLクライアント証明書ではTortoiseSVNを使用 [Read More]

    Tracked on 2007.03.11 10:31

    « Apache2.2 + Tomcat6.0 | Main | SubversionとSSLクライアント証明書(2) »