xml署名の実装にハマった

GoogleAppsで独自のログイン認証をしようとしたりすると、SAMLを使う必要があります。で、さらにぶんなげるxmlにはデジタル署名を加えてやら無いといけないのです。

これはxmlsec、xmlsec-opensslをrpmでインストール(yumだと入らなかった)してやれば済むだろうと簡単に考えていたのですが、そうはいきませんでした。

xmlsecに関しては問題なかったのですが、

Error: unable to load xmlsec-openssl library. Make sure that you have
this it installed, check shared libraries path (LD_LIBRARY_PATH)

と、「xmlsec-OpenSSLがみつかんねーYO!」と怒られてしまうわけです。インストールしたっちゅーねん!

現在の環境はCentOS5.5の64bit。/usr/lib64にパスを通しても変わらず、悶々としていたところ、


libxmlsec1-openssl.so.1

ん?rpmって普段使わないからわかんないんだけど、.soじゃないの?「libxmlsec1-openssl.so」ってシンボリックリンクつくってみるか。うぉぉぉぉ、うごいたぁぁぁぁ!

な感じでした。

結局、

  1. xmlsec、libxslt、xmlsec1-openssl、それぞれのdevelをrpmでインストール(ソースだとlibxml2のバージョンでうるさい)。
  2. /usr/lib64にパス通す。
  3. libxmlsec1-openssl.soっていうシンボリックリンクつくる。

だけでした。

半日悩んだ。。。