这是什么时间戳格式?

时间:2018-04-23 16:50:36

标签: php ssl timestamp

对于知道的人来说,这是一个简单的方法!

以下是查询SSL证书以获取详细信息时返回数组的片段:

[version] => 2
[serialNumber] => 555279728681872447526795057541980481418

   [validFrom] => 170407000000Z
   [validTo] => 180707235959Z

[validFrom_time_t] => 1491523200
[validTo_time_t] => 1531007999
[purposes] => Array...

现在我可以看到validFrom_time_t是一个UNIX时间戳,但纯粹是为了感兴趣,有什么地方才能使用?

(我在我的剧本中使用了validFrom,当然它已经破了!)

PS下面的实际unix时间戳解析为:星期五,2017年4月7日00:00:00 GMT如果有帮助

2 个答案:

答案 0 :(得分:1)

X.509证书中的编码是使用ASN.1完成的。时间戳通常以ASN.1 UTCTime编码,或在ASN.1 GeneralizedTime中编码。你看到的是UTCTime,这意味着字符串被解释为YYMMDDhhmmssZ

答案 1 :(得分:1)

斯蒂芬已经确实提供了它的要点。只是另一个有用的资源: A Layman's Guide to a Subset of ASN.1, BER, and DER 具有以下内容:

  

5.17 UTCTime

     

UTCTime类型表示“协调世界时”或格林威治标准时间(GMT)值。 UTCTime值包括精确到分钟或秒的本地时间,以及以小时和分钟为单位的GMT偏移量。它采用以下任何一种形式:

YYMMDDhhmmZ
YYMMDDhhmm+hh'mm'
YYMMDDhhmm-hh'mm'
YYMMDDhhmmssZ
YYMMDDhhmmss+hh'mm'
YYMMDDhhmmss-hh'mm'
  

其中:

YY is the least significant two digits of the year

MM is the month (01 to 12)

DD is the day (01 to 31)

hh is the hour (00 to 23)

mm are the minutes (00 to 59)

ss are the seconds (00 to 59)

Z indicates that local time is GMT, + indicates that local time is later than GMT, and - indicates that local time is earlier than GMT

hh' is the absolute value of the offset from GMT in hours

mm' is the absolute value of the offset from GMT in minutes 
  

此类型是字符串类型。

     

UTCTime类型用于PKCS#9的签名时属性中的签名时间以及X.509的有效性类型中的证书有效期。