2

私は「C」のバックグラウンドから来ました。Java SSL サーバーの作成方法を分析しようとしています。

そのため、私が見つけた例では、証明書とプライベートをキーストアにロードし、プログラムでキーストアを SSLContext に関連付けてから、同じものから SSLServerSocket を作成することについて話しています。

しかし、SSLServerSocket がどの証明書を使用する必要があるかを直接言及する方法はありますか? また、キーストアを使用していて、複数の証明書とキーがある場合でも、どの証明書とキーを使用するかを SSLServerSocket に指定するにはどうすればよいですか?

サンプルリンクは役に立ちます。

4

1 に答える 1

2

コメントで言っていたように、以前の質問の 1 つに対する回答で、これを行うには a を使用する必要がありますKeyManager

これにはさまざまな方法があります。jSSLutilsは、もう少し便利にするライブラリです (ただし、手動で行うこともできます)。FixedServerAliasKeyManagerの例があります。それを行う最短の方法の 1 つは、次のようなものを使用することです。

X509SSLContextFactory sslContextFactory = new X509SSLContextFactory();
// By default, this would use the keystore passed with the usual system properties.

sslContextFactory.setKeyManagerWrapper(
    new FixedServerAliasKeyManager.Wrapper("the-alias-you-want"));
// You could read the alias name from a custom system property, for example.

SSLContext sslContext = sslContextFactory.buildSSLContext("TLS");
SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
于 2011-06-16T19:07:33.037 に答える