在Spring Web应用程序中上载的位置以及如何使用PKCS#12证书

时间:2016-12-16 19:07:54

标签: java spring web-services spring-mvc keystore

我是Java Web应用程序编程的新手。用户需要在我的Web Spring应用程序中重新/上传PKCS #12个证书(所有用户和每个应用程序实例的一个证书)。该证书用于签署我的应用程序发送给WS的SOAP消息(我需要使用此证书创建keystore)。我创建了应用程序的业务层,现在我需要添加最终用户的Web功能。

我的问题是:

  • 文件存储 - 上传证书的位置? (说实话,我从未实现过在Java Web应用程序中上传的文件 - 文件放在哪里?在数据库,磁盘或其他地方?)
  • 密钥库 - 每次用户上传新证书文件或是否应更新现有密钥库时,最好创建新的keystore?在哪里放置密钥库以便KeyStoreFactoryBean访问?这种情况的最佳做法是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

请注意,PKCS#12也是一个密钥库,但我建议提取密钥并将其包含在应用密钥库中,而不是直接使用该文件

使用主密钥库,您可以控制SOAP签名代码的位置,访问控制和配置。

而存储pkcs12文件有缺点:

  • PKCS#12文件需要存储密码才能解密。

  • 直接在磁盘上存储文件通常会产生问题:权限,名称,访问控制等。

  • SOAP签名配置将与变量文件名复杂。例如,在已知的框架WSS4J中,配置是使用配置文件完成的。无法在运行时配置密钥库路径(可能已更改...)

  • 上传的文件可能不在类路径中。使用类路径而不是绝对目录路径

  • ,加载资源的Spring配置更简单