- PR -

Tomcat5 サーブレット/JSP コンテナ - SSL設定について

投稿者投稿内容
hati
会議室デビュー日: 2007/12/06
投稿数: 6
投稿日時: 2007-12-06 14:29
はじめて書き込みをしますのでよろしくお願いします。


<開発環境>
・Tomcat5.5
・jdk1.5.0_06
・jre1.5.0_06

<確認内容>
現在、Tomcat5環境でSSL機能をインストールおよび設定をしていますが
そこで解決しない箇所がありましてどなたかアドバイスを頂きたいと思います。

SSL機能をインストールおよび設定の作業手順として
1.証明書キーストアを作成
  コマンド:keytool -genkey -alias tomcat -keyalg RSA

2.上記1を使ってCSRを作成
  コマンド:keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr

3.上記2で作成したCSRよりセキュア・サーバIDを取得する(ベリトランス)

4.ベリトランスより取得したセキュア・サーバIDをキーストアへインポート
  コマンド:keytool -import -alias tomcat -trustcacerts -file cert.cer

5.CAの自己証明書をキーストアへインポート
  コマンド:keytool -import -alias root -trustcacerts -file Certificate.cer


※上記4を実行した後、以下のエラーが出力されます。

keytool エラー: java.security.cert.CertificateException: sun.security.pkcs.ParsingException: X509.ObjectIdentifier() -- data isn't an object ID (tag = 48)

また、上記4と5の順番を逆にすると以下のエラーが出力されます。
keytool エラー: java.lang.Exception: 応答から連鎖を確立できませんでした。

エラーの内容からどのように対処してよいのかわからない状態です。
対処方法がご存知の方がおりましたら、ご教授お願いいたします。

blunder
ベテラン
会議室デビュー日: 2003/09/11
投稿数: 65
投稿日時: 2007-12-06 17:02
まず証明書の中身をご覧になってはいかがでしょう?
keytool -printcert -file ファイル名
そうすれば何か手がかりがわかるかもしれません。
hati
会議室デビュー日: 2007/12/06
投稿数: 6
投稿日時: 2007-12-06 17:07
解決になったのかわかりませんが、自己レスします。

以下の手順ではローカル環境でのSSL機能設定は出来たような気がします。

SSL機能をインストールおよび設定の作業手順として
1.証明書キーストアを作成
  コマンド:keytool -genkey -alias tomcat -keyalg RSA
2.Tomcat設定ファイル(server.xml)のSSL用のHTTPコネクタ定義をコメント解除し
  上記1のキーストアファイル定義とパスワード定義を追加

上記設定後、Tomcat起動し、ブラウザからhttps://localhost:8443/にアクセスはできました。

ただ、先ほどの手順ではまだ解決していません。
対処方法がご存知の方がおりましたら、ご教授お願いいたします。
hati
会議室デビュー日: 2007/12/06
投稿数: 6
投稿日時: 2007-12-06 20:42
blunder様返信ありがとうございます。

証明書の中身を教えていただきましたコマンドで確認した結果、
ベリサインへの申請情報とベリサインからの情報が確認出来ました。
そこで細かい質問になって申し訳ありませんが、
注意すべき箇所等ございましたら教えていただきたいと思います。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2007-12-06 23:42
引用:

hatiさんの書き込み (2007-12-06 14:29) より:
はじめて書き込みをしますのでよろしくお願いします。

※上記4を実行した後、以下のエラーが出力されます。

keytool エラー: java.security.cert.CertificateException: sun.security.pkcs.ParsingException: X509.ObjectIdentifier() -- data isn't an object ID (tag = 48)




エラーの意味内容は、ファイルが証明書データの形式じゃないと言ってるようです。
cert.cerのデータ形式は何でしょう。もしかしてPKCS#12データとかPKCS#7だったり
しませんか。

引用:


また、上記4と5の順番を逆にすると以下のエラーが出力されます。
keytool エラー: java.lang.Exception: 応答から連鎖を確立できませんでした。




あれ?4と5は独立のはずですが。。つーか5が先でもいいような。
やっぱりファイル名が証明書じゃないような。。
blunder
ベテラン
会議室デビュー日: 2003/09/11
投稿数: 65
投稿日時: 2007-12-07 11:33
引用:

証明書の中身を教えていただきましたコマンドで確認した結果、
ベリサインへの申請情報とベリサインからの情報が確認出来ました。
そこで細かい質問になって申し訳ありませんが、
注意すべき箇所等ございましたら教えていただきたいと思います。



まず証明書申請時に生成した鍵ペアのバックアップがあるかどうかが気になります。
あればそれを使えばよいです。
もしバックアップがなくて、かつ(申請時の)プライベート鍵を紛失していると
厄介です。
その場合はベリサインへの再申請が必要ですが、今見たら、初回発行から30日以内は
無償で再発行してくれるようになっているようです。

次に「ベリサインへの申請情報」というのは証明書ではないので、これをキーストアに
インポートすることはありえないです。
インポートするのはサーバ証明書(ベリサインから買ったもの)とベリサイン自体の
中間証明書(もしあれば)です。

最後に手順なんですが、Tomcatのマニュアルと見るかぎり、

  • Import the Chain Certificate into you keystore
  • And finally import your new Certificate

という順番なので、順番が逆転しているように思います。
hati
会議室デビュー日: 2007/12/06
投稿数: 6
投稿日時: 2007-12-16 14:16
blunder様返信ありがとうございます。

ご指摘いただきました手順で再度やってみましたが結果は変わりませんでした。
Tomcatサイト上でも手順を確認してみましたが・・・

作業手順を更に詳細にすると・・・
※現在SSL調査により、ベリサインよりテスト証明書を発行して作業を
行っている事をお伝え漏れておりました。また、作業OSはWindouwsです。

手順3のベリサインより取得するサイトURLは以下になります。
http://www.verisign.co.jp/server/trialserver/index.html?slpo=d
上記サイトの最後のページでルート証明書を取得します。
その後、ベリサインよりメールにてテスト証明書が発行され、その証明書を最後に
キーストアへインポートする際、パスワード入力が聞かれてその後、以下のエラーメッセージが出力されます。
-----------------------------------------------------------------------
keytool エラー: java.lang.Exception: 応答から連鎖を確立できませんでした。
-----------------------------------------------------------------------

手順の最後『新規発行された証明書をインポート』とは、上記で言うテスト証明書で
よいのでしょうか?

何かご存知でしたら、ご教授をお願いいたします。
blunder
ベテラン
会議室デビュー日: 2003/09/11
投稿数: 65
投稿日時: 2007-12-16 18:04
引用:

手順の最後『新規発行された証明書をインポート』とは、上記で言うテスト証明書で
よいのでしょうか?



はい。

エラーの内容からすると、証明書チェーン(連鎖)が認識できていないようです。
証明書チェーンは本ケースでは下記のようになっていると思います。

コード:
サーバ証明書(ベリサインからの応答、テスト証明書)
    Subject: サーバ
    Issuer: 中間認証局
中間認証局証明書(中間証明書)
    Subject: 中間認証局
    Issuer: ルート認証局
ルート認証局証明書(ルート証明書)
    Subject: ルート認証局
    Issuer: ルート認証局



Issuerは上位認証局へのポインタで、このポインタを上へ上へとたどっていく
ことにより、最後にルートに行き着く必要があります。
このチェーンが壊れていて、きちんとルートに行き着かず、その結果検証に失敗
しているように見えます。
中間証明書やルート証明書が正しくインストールされているかどうか確認した
ほうがよさそうです。
では。

スキルアップ/キャリアアップ(JOB@IT)