50

我正在使用aws-sdk-php,特别是 SesClient,我已经在客户服务器(托管在 DreamHost 中)中部署了一个应用程序,我收到了这个错误:

Signature not yet current: 20130909T170846Z is still later than 20130909T170823Z (20130909T170323Z + 5 min.)

我猜服务器时间配置错误,我正在尝试联系 DH 支持来检查,我敢打赌这需要一段时间。

还有其他想法吗?该应用程序之前已部署多次,我从未见过此错误。

4

9 回答 9

55

我有类似的问题。我正在从 Ubuntu EC2 实例运行我的 CI 服务器,并且时间不同步。我用 NTP 同步了时间

sudo ntpdate ntp.ubuntu.com

它开始工作正常。

于 2014-12-17T22:25:23.607 回答
9

If you are using windows, just set the current time and time zone automatically. It will resolve the issue.

enter image description here

于 2019-10-21T05:26:12.463 回答
8

我刚刚在部署到 AWS 的 Django 应用程序中遇到了同样的问题。站点错误确实含糊不清,但通过电子邮件发送给我的错误日志说:“JSONResponseError: JSONResponseError: 403 Forbidden {'message': 'Signature not yet current: 20150224T185106Z is still later than 20150224T185033Z (20150224T184533Z + 5 min.)' }" 在指向 Boto 和 Elastic Transcoder 的文件路径之后。在服务器上执行以下操作:

  1. ntpq -p会告诉你是否安装了 ntp
  2. 如果您没有ntp,请执行sudo apt-get install ntp
  3. sudo service ntp stop
  4. sudo ntpdate -s us.pool.ntp.org将使您的服务器时间与美国的原子钟保持一致(这需要根据您所在的国家/地区进行调整)
  5. sudo service ntp start

祝你好运!您可以在此处阅读更多信息:http: //docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html#configure_ntp

于 2015-02-25T17:01:06.333 回答
7

我最近有同样的问题。我做了以下

sudo ntpd -q -g

-g如果您的时钟不同步,则需要该选项。它强制ntpd继续,直到它同步。

于 2016-04-13T14:13:48.760 回答
2

只需确保您的服务器时间与当前时间相差 5 分钟。检查上午或下午时间。

于 2015-08-10T19:05:45.200 回答
2

对于 windows ,请检查您的timetimezone是否正确。您的 PC 时间必须5 minutes与当前时间一致。

于 2019-02-09T15:25:47.623 回答
2

我遇到了类似的问题,经过一番调查,找到了根本原因。

原因是,我的 AWS 实例/服务器时区和我进行 RESTful 调用的本地系统时区不同。AWS 假设请求也是从同一时区发出的(它只是忽略了 5 分钟的间隔,不超过这个时间)。我能够通过从 AWS 控制台进行测试调用并检查日志中的详细信息来验证这一点(在下面给出 Java 代码段)

private String getDateString() {
    Calendar cal = Calendar.getInstance();
    DateFormat dfm = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
    dfm.setTimeZone(TimeZone.getTimeZone("UTC"));  //server timezone
    return dfm.format(cal.getTime());
}
于 2015-08-21T06:50:11.120 回答
0

在 Centos6 上,检查 ntpd 服务是否正在运行。

服务 ntpd 状态 服务 ntpd 启动

在这之后它工作得很好。

于 2022-02-03T12:54:44.627 回答
0

我已使用以下内容将日期转换为 AWS 请求格式。

String getAWSCompatibleDate() {
    var date = DateTime.now().toUtc();
    String formattedDate = DateFormat('yyyyMMddTHHmmss').format(date);
    var newDate = "$formattedDate" + "Z";
    print("Date - $date");
    print("New Date - $newDate");
    return newDate.toString();
  }
于 2021-01-11T20:24:08.900 回答