因此,我有一个应用程序,允许用户使用HTTPS配置服务器。服务器使用Undertow。要将HTTPS处理程序添加到Undertow,我需要调用Keystore.getInstance("JKS")函数,该函数根据提供者返回实现。Java本身只支持3个提供者(JKS、PKCS12和JCEKS),但据我所知,您可以添加自己的Keystore实现提供者。
所以我的问题是,仅仅给定keystore文件,是否可以确定它是什么类型的Keystore?我不能依赖于文件扩展名,因为PKCS12密钥库也可以存储在.p12文件扩展名中。我是否可以通过编程获得这个值,这样我就可以将它传递给Keystore.getInstance(),或者我必须直接从用户那里获取该输入?
发布于 2018-12-10 15:25:27
目前在WildFly中,正在使用Elytron项目进行这样的功能。你可以看一看。
一些密钥库可以通过格式模式来区分。但我认为在你的例子中,最简单的方法是逐个加载Keystore.getInstance("PKCS12")、Keystore.getInstance("JKS")、Keystore.getInstance(“see”),看看哪一个通过了。
另外,我认为用户可以提供keystore类型。
https://stackoverflow.com/questions/53699040
复制相似问题