我正在使用 DocuSign API 并遇到了一些问题。将数据请求发送到他们的服务器时,我收到以下错误:
SoapFault exception: [q0:InvalidSecurity] An error was discovered
processing the <Security> header ---> WSE065: Creation time of the
timestamp is in the future. This typically indicates lack of synchronization
between sender and receiver clocks. Make sure the clocks are synchronized
or use the timeToleranceInSeconds element in the microsoft.web.services3
configuration section to adjust tolerance for lack of clock synchronization.
我查看了他们的社区论坛,我能从他们的论坛管理员那里找到的唯一回复是:
The message means that the client clock is wrong. The timezone might be set
incorrectly. If the SOAP request is timestamped too far in the future or in the
past, the server will reject it. We generally run into this error with mobile
apps since folks don't always have their devices set to sync to network time.
我检查了我的服务器时间以及我的计算机时间,以确保一切正常。我的电脑时间设置为EST,服务器设置为CST。我已经尝试在我的计算机上更新和同步我的系统时钟,并尝试将我的时区调整为 CST 以确保它们都匹配。我还将我的计算机时间更改为格林威治标准时间,因为这就是他们所说的服务器时间。我也尝试过更新我服务器的时钟,因为它似乎有点不对劲。(我的时钟和服务器时钟之间似乎有 6 分钟的差异)。
我在服务器上运行了这个命令:
sudo ntpdate ntp.ubuntu.com
回复:
27 Sep 08:51:41 ntpdate[18858]: step time server 91.189.94.4 offset -357.639332 sec
我还尝试在服务器上编辑我的 grub 配置文件(/boot/grub/grub.conf)。我尝试将这些参数的不同组合添加到内核行的末尾:
clock=pit
acpi=off
noapic
以及尝试使用此命令更新硬件时钟:
hwclock=systohc
肥皂标题如下:
该请求是在上午 10:41(我的计算机时间 [EST])、上午 9:47(我的服务器时间 [CST])发出的。
要求:
POST /api/3.0/api.asmx HTTP/1.1
Host: www.docusign.net
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.16
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.docusign.net/API/3.0/CreateEnvelope"
Content-Length: 116157
回复:
HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Length: 1696
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Thu, 27 Sep 2012 14:41:13 GMT
Vary: Accept-Encoding
Strict-Transport-Security: max-age=7776000; includeSubDomains
如果有人对可能导致此错误的原因有任何想法,或者如果有人对如何同步我的时钟有任何进一步的建议,我很想听听他们的意见。
提前感谢您的时间和考虑。