因此,我有一个允许用户使用HTTPS配置服务器的应用程序。服务器使用Undertow。要将HTTPS处理程序添加到Undertow,我需要调用Keystore.getInstance(“ JKS”)函数,该函数将基于提供程序返回实现。 Java本机仅支持3个提供程序(JKS,PKCS12和JCEKS),但是据我了解,您可以添加自己的Keystore实现提供程序。
所以我的问题是,仅给出密钥库文件,是否可以确定它是什么类型的密钥库?我不能依靠文件扩展名,因为PKCS12密钥库也可以存储在.p12文件扩展名中。是否可以通过编程获取该值,以便将其传递给Keystore.getInstance(),还是必须仅从用户那里获取该输入?
答案 0 :(得分:0)
当前在WildFly中,使用Elytron项目正在开发此类功能。您可以看一下[1]。
一些密钥库可以通过格式模式来区分。但是我认为,在您的情况下,最简单的方法是尝试一次加载一个Keystore.getInstance(“ PKCS12”),Keystore.getInstance(“ JKS”),Keystore.getInstance(“ JCEKS”)并查看哪一个通过。
我还认为用户可以提供密钥库类型。