http://park15.wakwak.com/~unixlife/practical/openssl.html
基 本的には、ここで紹介されている手順を踏みます。
- まず、認証局の立ち上げ。これは上述のサイトの通り構築 してください。
- 次に、認証局で署名してもらったサーバ証明書の作成です。
これも、上述のサイトの通り作成してください。
ただし、サーバ証明書とサーバの秘密鍵を設定ファイルで指定できるApacheと違い、lighttpdでは、サーバ証明書に自身のプライベートキーを追 加しておく必要があります。
これは、
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:SSL
ここに記述があります。
If you have a .crt and a .key file, cat them together into a
single PEM file (the order isn't strictly important):
$ cat host.key host.crt > host.pem
これに従い、下記の様にコマンドを打ち込みます。
$ cat srvernopass.key cert.pem > cert.pem
これを、lighttpd.conf中のssl.pemfileセクションで指定してあげてください。尚、このファイルに秘密鍵が書いてあるからと言って セキュリティレベルが落ちるものではありませんのでご安心を。(cert.pemを配置するディレクトリのパーミッション設定だけは気をつけてください ね)
ここまでで、自己認証局でサインしたサーバ証明書(俗に言われるオレオレ証明書)を用いたSSL通信が可能となります。(httpsでの通信が可能となり ます)
- さて、最後です。
これまた、pkcs12形式のクライアント証明書の作成までは上述のサイトの通りです。しかし、やはりlighttpdではちょっと設定が違います。
変更点は以下。
ssl.verifyclient.activate = "enable"
ssl.verifyclient.enforce = "enable"
ssl.ca-file = "/path_to/CA/cacert.pem"
ssl.verifyclient.depth = 2
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
これの意味するところは、ちょっと古いですがここを見るとよいでしょう。
http://skyline.bosconet.org/pjohnson/blog/?p=457
あと、ここも。
http://redmine.lighttpd.net/issues/19
よく調べて無いので、分かる点だけ。
ssl.verifyclient.activate = "enable"
ssl.ca-file = "/path_to/CA/cacert.pem"
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
この3つがキーだと思ってまして。 - まず、クライアント認証をするかどうか
- そして、認証局が署名した証明書リスト へのパス
- 最後に、クライアント証明書のどのフィー ルドで認証するか。
全体像はこんな感じ。
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/path_to/Server/server.pem"
ssl.ca-file = "/path_to/CA/cacert.pem"
ssl.verifyclient.activate = "enable"
ssl.verifyclient.enforce = "enable"
ssl.verifyclient.depth = 2
ssl.verifyclient.username = "SSL_CLIENT_S_DN_CN"
server.document-root = "/var/wwws/"
}
以上をlighttpd.confに追加したのち、先に紹介させていただいたサイト、
http://park15.wakwak.com/~unixlife/practical/openssl.html
ここで作成した、pkcs12形式のクライアント証明書をchromeに導入すると、クライアント認証を伴うSSL通信が可能となり、クライアント証明書を 持ったPCからだけ、httpsアクセスが可能となります。
なお、Chromeへの証明書のインポート方法はこちら をご参照ください。
http://www.certvision.net/set_c_crt/chrome.html
以上が、lighttpdでのSSL Client Authの方法です。
0 件のコメント:
コメントを投稿