1

サードパーティのJVMを使用してWindowsモバイルデバイスで実行されるJavaアプリケーションがあります。アプリケーションは、HTTPを介してApacheTomcatサーバーと通信します。一部の接続にはHTTPSも使用しており、証明書はSunkeytoolユーティリティを使用して作成されています。最初にgenkeyを使用してキーストアが作成され、次にexportを使用して証明書がエクスポートされ、最後にimportを使用して別のキーストアにインポートされました。genkeyによって作成されたファイルはApacheサーバーにロードされ、importを使用して作成されたキーストアはPDAのJVMにロードされました。すべてが期待どおりに機能します。

現在、PDAで新しいJVMを使用していますが、(何らかの理由で)このJVMではキーストアがX509(DER)形式である必要があることを確認しました。私は約1か月前にこれに取り組み始め、それを機能させましたが、愚かなことに、私が行った手順を書き留めることはありませんでした。私はopensslを使用したことを覚えているようですが、それ以外は完全に失われています。現在opensslを使用して作成し、Apacheにロードしようとすると、起動時にエラー(無効なキーストア形式)が発生するため、何かが完全に欠落している可能性があります。

PDAで実行されているApacheサーバーとJVMにロードできるこの自己署名X509証明書を作成する方法について誰かが考えていますか?

アップデート

自己署名証明書の作成については、Apacheの指示に従いました。

openssl req -new -x509 -nodes -out server.crt -keyout server.key

しかし、キーをApache confディレクトリにコピーして起動すると、例外が発生します。

java.io.IOException: invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:633)
...

server.xmlファイルには、HTTPSの次のエントリが含まれています。

<Connector port="6969"
        protocol="HTTP/1.1"
            SSLEnabled="true"
                maxThreads="150"

                scheme="https"
                sslProtocol="TLS"
                secure="true"

                clientAuth="false"

                keystoreFile="./conf/server.key"
                keystorePass="password"

        ciphers="SSL_RSA_WITH_RC4_128_MD5"
    />

キーストアはJavaキーストア形式である必要があると思いますか?しかし、デバイスの証明書はx509形式である必要があるため、これを行う方法がわかりません。

4

3 に答える 3

1

not-yet-commons-ssl-0.3.11.jar の KeyStoreBuilder ユーティリティは、Apache/OpenSSL スタイルの PEM 証明書と Java キーストア ファイルの間で変換できます。

http://juliusdavies.ca/commons-ssl/utilities.html#ksb

これを実行して、コマンドライン オプションを確認してください。

java -cp まだ一般的でない-ssl-0.3.11.jar org.apache.commons.ssl.KeyStoreBuilder

于 2010-03-31T04:49:25.013 に答える
1

すでにapache の指示に従っている場合は、無効なキーストア形式に関する詳細を提供する必要があります。

于 2010-03-30T12:10:28.483 に答える
1

あなたは、PDA 上の新しい JVM には DER 形式が必要であると書いています。使用している openssl コマンド ラインは、デフォルトで PEM ファイルを作成します。次の openssl コマンドを使用して、これらの server.crt および server.key PEM ファイルを DER 形式に変換できます。

$ openssl x509 -in server.crt -outform DER -out server.crt2
$ openssl rsa -in server.key -outform DER -out server.key2

PEM ファイルはテキスト ファイルとして読み取り可能で、DER ファイルはバイナリ ファイルです。本当に PEM と DER 形式の違いだけなら、これでうまくいくはずです。

于 2010-03-31T22:40:38.910 に答える