带有 HSM 密钥库的 CXF WS-Security

CXF WS-Security with keystore from HSM

我正在使用 CXF 中的示例项目 "ws_security_sign_enc",这是一个具有简单 SOAP 服务的 client/server 项目。 它只发送问候语(消息经过加密和签名)。

对于加密和签名,使用了 CXF 内部安全机制。因此,加密和解密属性使用 Apache Merlin 作为密钥库位置、密码等。

现在我想连接一个 HSM。我已经通过 JCE 从 HSM 以 KeyStore 对象的形式加载了密钥库。

我怎样才能实现这个密钥库对象用于我的 Web 服务中的 encryption/decryption?我想,我必须为此以编程方式设置 WS Security / WSS4j Crypto。

我不想保留密钥库并将其路径放回 encryption.properties。还有其他的可能性吗?

HSM 应支持 PKCS#11。假设您已经 configured Sun PKCS#11 provider for your HSM(pkcs11.cfg 具有库路径、插槽索引等),那么您必须修改 WSS4J 加密 .properties 文件以确保:

  • org.apache.ws.security.crypto.provider=org.apache.wss4j.common.crypto.MerlinDevice
  • org.apache.ws.security.crypto.merlin.keystore.type=PKCS11
  • org.apache.ws.security.crypto.merlin.keystore.file 属性 已删除。