使用X.509证书手动创建带有签名SOAP消息的HTTP SOAP请求



我正试图通过http SOAP将一条消息从NetSuite发送到另一个系统,但有人告诉我,我已经发送了一条签名的SOAP消息。NetSuite只有一个名为nlapiRequestURL的操作(url、postdata、headers);我正在尝试使用此方法通过手动创建的SOAP消息进行发送。我遇到的问题是弄清楚如何将证书添加到标头中。以前有人这样做过吗?

关于使用证书对soap消息进行签名,我了解到我需要本地密钥库中的私钥和公钥。这个java教程展示了如何做到这一点,但我如何在NetSuite中做类似的事情。

https://dzone.com/articles/signing-soap-messages

一种可能的解决方案是用Java编写自己的代理web服务器或任何其他服务器端语言。

以下是我的建议摘要:

1) 使用Suitelet或计划脚本。

2) 在代理服务器中,创建签名的SOAP请求并发送到供应商API

3) 现在,要回复NetSuite,有两个选项a)保持与NetSuite的连接处于打开状态,直到收到响应将其发送回NetSUite的脚本b)您回复NetSUiteRESTlet,它使设计异步,并且可以特别好如果回转时间超过45秒。

此外,我建议使用HTTPS编写web服务器,您的服务器具有受信任的CA签名证书,这样,web服务器和NetSuite之间的通信是安全的。通过这种方式,您的通信将是安全的(附言:我无法回答SSL 100%安全的问题,关于http://security.stackexchange.com关于该主题)。

最新更新