Play Framework 2.3 WS SSL 禁用算法检查器



我目前正在尝试在Play 2.3中使用WS与Visa Direct Payments API进行交互,但我正在努力,因为提供的沙盒密钥是RSA的密钥大小为1024,从我在源代码注释中读到的内容来看,被认为是不安全的,所以被禁用了。

由于这只是沙盒,我想知道是否有办法禁用此额外的密钥检查,我已经尝试了ws.acceptAnyCertificate=true没有任何运气。

我在控制台中收到的错误如下:

[warn] p.a.l.w.s.ConfigSSLContextBuilder - validateKeyStore: Skipping certificate with weak key size in visasandboxcert: Certificate failed: cert = "CN=841edac8-d8cd-4593-b575-fdf3bbee5e67,OU=VMT,O=Visa,L=Foster City,ST=CA,C=US" failed on constraint RSA keySize < 2048, algorithm = RSA, keySize = 1024 [error] play - Cannot invoke the action, eventually got an error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

谁能给我任何建议,我该如何解决这个问题?最好不要更改 Play 源代码并从中构建。

首先,您需要与Visa Direct Payments联系并提交错误报告,让他们知道1024位密钥在当今时代是完全不可接受的。

其次,您需要设置:

ws.ssl.disabledKeyAlgorithms="RSA keySize < 1024"

这将告诉算法检查器放松。 有关更多详细信息,请参阅证书验证。

如果你使用的是Play 2.6.x,你可以这样做

play.ws {
   ssl {
    debug.handshake = true
    disabledKeyAlgorithms =["RSA keySize < 1024"]
 }
}

最新更新