web-dev-qa-db-ja.com

Javaアプレット-コード署名証明書とSSL証明書が必要

私はJava以前は自己署名されていたアプレットに取り組んでいます。Java 7u51が使用されているので、私はjarを取得するように取り組んでいますアプレットが署名した。

Jarの署名には、Apache2 sslに使用されている証明書/キーを使用しました。これを行うには、キー/証明書と Not Commons SSL ライブラリを使用して新しいキーストアを作成する必要がありました。

アプレットjarに対してjarsigner -verifyを実行すると、次のようになります。

This jar contains entries whose signer certificate's ExtendedKeyUsage extension
doesn't allow code signing.

アプレットはまだ無効な証明書エラーを受け取っています。証明書を表示できますが、SSLで使用される証明書と同じです。エラーメッセージには、自己署名されたためにブロックされたと記載されていますが、これは自己署名証明書ではありません。

セキュリティ設定を「中」に下げるとアプレットを実行できますが、これはこのプロジェクトでは受け入れられません。

これに署名するために使用した証明書は、チェーンの一部です(約4桁)。チェーン全体を使用して瓶に署名する必要がある方法はありますか?コード署名証明書を使用する必要がありますか?

6
aglassman

jarsigner -verifyは、問題があることを示し、同じ理由で、同じコードベースを使用しているため、JVMが同じ理由でアプレットを拒否する可能性があります。

Extended Key Usage標準の証明書拡張 であり、証明書が許可される「使用法」の完全なリストを示します。この場合、jarsigner(およびおそらく、JVM)は、特定のOIDで「コード署名」と示されている)拡張を含む証明書に厳格であるように見えます。関連する拡張機能を書き込むかどうかはCAに依存します。SSLサーバーの証明書には、デフォルトでそのような拡張機能は含まれません(「拡張キーの使用法」がある場合、これにはOIDが含まれます「コード署名」ではなく、「サーバー認証」などに使用します)。

特定のコード署名証明書を取得する必要があります。すべてのCAがこの種のものを販売しているわけではありません。

4
Tom Leek