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

Web services Play Framework 2.3 WS-SSL禁用算法检查器,web-services,ssl,playframework-2.0,Web Services,Ssl,Playframework 2.0,我目前正在尝试使用WS-in-Play 2.3与Visa Direct Payments API交互,但我遇到了困难,因为提供的沙箱密钥是RSA的密钥大小为1024,并且从我在源代码注释中看到的情况来看,它被认为不安全,因此被禁用 由于这只是一个沙盒,我想知道是否有办法禁用这个额外的密钥检查,我已经尝试了ws.acceptAnyCertificate=true,但没有任何运气 我在控制台中收到的错误如下: [warn]p.a.l.w.s.ConfigSSLContextBuilder-valid

我目前正在尝试使用WS-in-Play 2.3与Visa Direct Payments API交互,但我遇到了困难,因为提供的沙箱密钥是RSA的密钥大小为1024,并且从我在源代码注释中看到的情况来看,它被认为不安全,因此被禁用

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

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

[warn]p.a.l.w.s.ConfigSSLContextBuilder-validateKeyStore:跳过visasandboxcert中密钥大小为弱的证书cert:certificate失败:cert=“CN=841edac8-d8cd-4593-b575-fdf3bbee5e67,OU=VMT,O=Visa,l=Foster City,ST=CA,C=US”在约束条件下失败RSA密钥大小<2048,算法=RSA,密钥大小=1024
[错误]播放-无法调用该操作,最终出现错误:java.security.invalidalgorithParameterException:trustAnchors参数必须为非空


有谁能给我一些建议,我怎样才能避开这件事?最好不要更改播放源代码并从中构建。

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

其次,您需要设置:

ws.ssl.disabledKeyAlgorithms="RSA keySize < 1024"
ws.ssl.disabledKeyAlgorithms=“RSA密钥大小<1024”

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

如果您使用的是play 2.6.x,您可以这样做

play.ws {
   ssl {
    debug.handshake = true
    disabledKeyAlgorithms =["RSA keySize < 1024"]
 }
}
play.ws{
ssl{
debug.handshake=true
disabledKeyAlgorithms=[“RSA密钥大小<1024”]
}
}

Hi Will,感谢您回复我,添加选项让我更进一步,但现在我遇到了这个错误:
java.security.invalidalgorithParameterException:trustAnchors参数必须非空
您知道我可以检查什么吗?这是密钥库上的权限问题吗?这意味着您指定的信任存储未找到或不包含任何“信任锚”(信任存储中的普通旧X.509证书)。我会检查您是否正确设置了证书--请查看keystore explorer或中介绍的其他证书管理工具之一,然后使用“谢谢”打开调试。我已经建立了一个信任存储,现在又收到了一个
收到的致命警报:握手失败
错误。这只是使用trustManager中的trustStore。我是否还需要在application.conf的keyManager中设置密钥库?只有在使用客户端身份验证时才需要密钥库,其中服务器验证客户端是否提供了由服务器信任的CA签名的证书。您应该在握手失败之前向上滚动,看看哪里会出现异常。