BLOGTIMES
2015/02/11

SSL クライアント認証と SSLCACertificatePath / SSLCARevocationPath

  httpd  sh  ssl 
このエントリーをはてなブックマークに追加

SSL クライアント認証をするウェブサーバを立てるときにいつも困るのは SSLCACertificatePath / SSLCARevocationPath を使うとうまく動かないということ。今日は腰を据えて丁寧に対応することにします。

ドキュメントを読むとシンボリックリンクを作れという話がちょっと書いてあるのですが、おそらくこの辺りがちゃんとしてないのが原因なんですよね。どうやって作ったら良いか具体的に書かれていないので、今ひとつよく分かりません。

仕方ないのでググって、以下のウェブを読む限りでは単にディレクトリに証明書を置いただけではだめで、`openssl x509 -noout -hash -in 証明書`.0という名前のリンクも一緒に作る必要があるようですね。失効リストの場合は x509 -> crl, .0 -> .r0 となるようです。

ファイルを入れる度にいちいち作業をするのも面倒(というか、忘れてしまう)ので、こんな感じのスクリプトを置いておくことにしました。とりあえずこれで証明書や失効リストを放り込んでスクリプトを流せば簡単に更新出来そうです。ハッシュなんて httpd 側でやって欲しいという気もしますが、これは何か理由があるんでしょうね。。。

pushd /path/to/crt/dir find . -type l -name '*.0' | while read f; do rm -f "$f" done find . -type f -name '*.crt' | while read f; do ln -s "$f" `openssl x509 -noout -hash -in "$f"`.0 done pushd /path/to/crl/dir find . -type l -name '*.r0' | while read f; do rm -f "$f" done find . -type f -name '*.crl' | while read f; do ln -s "$f" `openssl crl -noout -hash -in "$f"`.r0 done

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7382
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン