クライアント証明書Tweet今回の記事は、SVNのレポジトリに外部からアクセスする際にHTTPSを使用していると、認証が色々と面倒なので、クライアント認証を使用してみましょうという主旨です。鍵認証のように、登録済みのファイルを持っている人しかアクセスできなくする方法です。すごく単純ですが、ユーザ名とパスワードがあってもだめで、正しい証明書を持っているユーザのみがアクセスできる方法です。いっても証明書はオレオレ証明局になってしまうので、ご利用は計画的にお願いします。最終的にはどうなるの?SVNのレポジトリにHTTPSでアクセスするすべてのマシンにクライアント証明書をインストールします。パスワードは使ってもいいし、使わなくてもいいです。Authorityの略です。インストールされているマシンであれば、割と簡単に立ち上げることができます。含まれているコマンド群で必要なことは全部できます。インストールしておきましょう。/etc/pki/tls/openssl.cnfここでは、2行修正します。/etc/pki/CA」と適当な絶対パスに変更します。CA:TRUE」と適当な絶対パスに変更します。一つめは、単に相対パスがいやなので、修正しているだけです。2つめは、CAを最初に作るときだけ修正するようです。-newca最初にエンターを押せば鍵と証明書が作成されます。次にCA秘密鍵パスワードを入力します。このパスワードは厳重に保管されなければならないパスワードですね。証明書の情報については、適当に入れておきましょう。最後にCA秘密鍵パスワードを入力すれば、CAの元になる証明書は作成されます。空2つ上記の場合、日本の東京の文京にある、アシアル株式会社のシステム部がこのCAを管理しているらしい。連絡が取れる、という意味になります。CA:FALSE」に戻しておきましょう。これで、CA側の準備は整いました。証明書要求ファイルの作成これはどのサーバでやってもかまいません。サーバ上でやってもいいし、クライアントマシンでやってもいいです。サーバ上にSCPなりなんなりでコピーしておきます。CSRファイルを作成したマシンに移します。使用することができません(おそらく)。いうフォーマットに落とし込む必要があります。適当にパスワードを指定してください。指定することになります。サーバ側の設定せっかく作った証明書もSSLをちゃんと設定してあげないと、使うことができません。このCAを使ったクライアント認証をしたい場合の設定が以下になります。どのCAが署名した証明書を許可するのか、というのを指定する必要があります。一般的にはVerisignとかが署名してたら信頼できると思いますが、その場合でもApacheにVerisignの情報を教えてあげないとチェックできません。今回はオレオレCAの情報を指定します。