我的背景是“C”。我正在尝试分析如何编写Java SSL服务器。
到目前为止,我找到的示例都谈到了将证书和私有加载到密钥库,以及以编程方式将KeyStore关联到SSLContext,然后从它们创建SSLServerSocket。
但是,有没有什么方法可以直接提到SSLServerSocket应该使用哪个证书?此外,即使我使用密钥库,如果有多个证书和密钥,我如何向SSLServerSocket指定它应该使用哪个证书和密钥?
任何示例链接都会很有帮助。
发布于 2011-06-17 03:07:33
正如我在评论中所说,在answer to one of your questions earlier中,您需要使用KeyManager来完成此操作。
有多种方法可以做到这一点。jSSLutils是一个可以使其更方便的库(但您也可以更手动地完成)。这里有一个关于FixedServerAliasKeyManager的例子。最简单的方法之一就是使用下面这样的代码:
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();https://stackoverflow.com/questions/6374273
复制相似问题