- PR -

keytoolによる、証明書署名要求の生成

1
投稿者投稿内容
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-03-28 14:56
Sunの、java 1.5.0_08を使用して、キーストアの生成と、
証明書署名要求の作成を行っています。

C:\\...\\cert>keytool -certreq -alias **** -file hogehoge.csr -keystore ******
C:\\...\\cert>keytool -printcert -v -file hogehoge.csr
keytool エラー: java.lang.Exception: 入力の構文解析に失敗しました

ところが、キーストアの生成はちゃんとできて、-printcertによる中身の表示も
可能なのですが、次に出力した、証明書署名要求の内容を確認しようとすると、
エラーになってしまいます。

Googleにお伺いを立ててみたところ、「keytool 入力の構文解析に失敗しました」で
ヒットするのは、以下の1件だけで、
http://java.sun.com/j2se/1.3/ja/relnotes-linux.html
改行コードが不正である可能性があると。
これについては、oxで確認したり、nkfを使って変換してみたのですが、通りませんでした。
(この辺は、Cygwinのコマンドでいじくってます)
そうでない場合は、証明書署名要求に何らかの問題があるとのことなのですが。
さすがに暗号化されたテキスト内容までは手がでません。

当然ですが、opensslでこれに署名しようとしても、エラーになります。
$ openssl ca -out hugahuga.crt -in hogehoge.csr
Using configuration from /usr/ssl/openssl.cnf
wrong number of fields on line 1 (looking for field 6, got 1, '' left)

こちらの方は、私では、検索し切れませんでした。
opensslの出力するエラーメッセージについて、参照するべき事項、
あるいは、上記の現象について、ご存じの方がいらっしゃいましたら、
ご教授頂けますよう、お願いします。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-03-28 16:50
自己レスです。

お騒がせしました。
あの後、手元でいじくってみたのですが、
証明書署名要求の内容ってのは、keytools -printcertで
のぞけるものではないのですね。

すでに立ててあるCAにかけてみたら、
あっさりと署名するか否かのメッセージが現れました。
おそらくは、現在、立てようとしているCAの、opensssl.cnfに問題があるのでしょう。

以上であります。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-03-29 13:05
解決したので、舞い戻ってきました。

ぶっちゃけて言ってしまうと、認証局の構築がいい加減だったようです。

0.9.7の時は、自己証明書を作成するだけで何とかなったんですが、
0.9.8では通用しませんでした。
miscにあるCa.shを使用して認証局を構築したところ、
証明書署名要求への署名も、正常に完了しました。
スクリプトを使わないのは勉強のつもり、でしたが、
それならそれで、スクリプトの内容をちゃんと読むべきでしたか。m(_ _;m

お騒がせしました。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-03-29 13:44
私はopensslは使はず、もっぱらローカル環境のWindows 2000 serverの証明書サービスを、プログラムの追加と削除のWindowsコンポーネント追加して使ってます。
csrを作って、keystoreファイルにimportしてもいいですが、JavaSE6からはSunMSCAPIが追加されたので、JNI使わないでも直接IEにある証明書を使って処理できるようになったのがうれしいです。
1

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