またまたまたNo trusted certificate found
またまたまたでた、No trusted certificate foundのエラー自社サーバから相手サーバのあるURLをhttpsで起動しているだけの機能。自社サーバのjavaは、jdk1.4.2_12。そのjavaでtomcatを起動しているサーバは、Centosですよ。No trusted certificate foundは何回も経験しているので、またサーバ証明書がらみのエラーということは明白。$JAVA_HOME/lib/security/cacertsファイルにインポートすればいいだねよね。相手のサーバの証明書がらみを確認したら、エラーが出始めたタイミングでsslの証明書をTrend Micro S2 CAに変更したということ。トレンドマイクロさんですね。まあ、それだね。それに対応するルート証明書がこちらに入っていないんだよね。というわけで、Trend Micro S2 CAのルート証明書はというと、SwissSign Gold CA - G2とのこと。(http://esupport.trendmicro.com/solution/ja-JP/1099393.aspx?print=true)自分のところに入っているか確認keytool -v --list -keystore cacertsたくさんでちゃうのでgrepしてkeytool -v --list -keystore cacerts | grep swissないね。SwissSign Gold CA - G2はどこにあるのか・・・・SwissSignのサイトは英語だし、どこにあるの分かんないし・・・・トレンドマイクロにサイトには何も書いてないし・・・・うーん。うーん。そうだ。自分のWindowsPcのブラウザから引っこ抜いて入れたらどうだろう。IEならツール→インターネットオプション→コンテンツ→証明書→信頼されたルート証明機関あるじゃん。SwissSign Gold CA -G2 これを選択してエクスポートBase64encodedX.509を選択して・・・ファイルに保存して(AAA.cer)、サーバにUP認識したかな?keytool -printcert -file AAA.cerあら?エラーだ。sun.security.pkcs.ParsingException: X509.ObjectIdentifier() -- data isn't an object ID (tag = 48)・・・(中略)・・・keytool エラー: java.lang.Exception: 入力の構文解析に失敗しました。うーん。だめなのか?そこで、他の環境にある(jdk1.7)の$JAVA_HOME/lib/security/cacertsをコピーしてみようと思い立つ。jdk1.7の環境で、keytool -v --list -keystore cacerts | grep swissをやると別名: swisssignsilverg2ca・・・・中略・・・・別名: swisssignplatinumg2ca・・・・中略・・・・別名: swisssigngoldg2ca・・・・中略・・・・あるじゃん。$JAVA_HOME/lib/security/cacertsのバックアップをとって、cp -p $JAVA_HOME/lib/security/cacerts $JAVA_HOME/lib/security/cacerts_backjdk1.7の環境からコピーして・・・・keytool -v --list -keystore cacertsあれ?認識できない的なエラーになっちゃった。やべーやべーバックアップから元に戻す。うーん。jdk1.4のkeytoolでは、jdk1.7のcacertsを読めないらしい。うーん。困った。超急ぎなので、tomcatを起動しているjavaをjdk1.7にアップさせました。あーーーーー。このあと急いで、動作確認しないと・・・・・・・。追記jdk1.7にアップした後で、自分のWindowsPcのブラウザから引っこ抜いたSwissSign Gold CA -G2をkeytool -printcert -file AAA.cerとやったらちゃんと読めました。ということは、jdk1.4のkeytoolでは、SwissSign Gold CA -G2を読めないのか?