SSL 证书日期的表达式

您可以通过配置包含以下前缀的表达式来确定 SSL 证书的有效期:

CLIENT.SSL.CLIENT_CERT

以下示例表达式将特定到期时间与证书中的信息匹配:

client.ssl.client_cert.valid_not_after.eq(GMT 2009)

下表描述了对 SSL 证书的基于时间的操作。要获取所需的表达式,请将第一列表达式中的证书替换为前缀表达式“Client.SSL.CENT_CERT”。

  • <certificate>.VALID_NOT_AFTER:

    返回证书到期前的最后一天。返回格式是自 1970 年 1 月 1 日格林威治标准时间以来的秒数(0 小时,0 分钟,0 秒)。

  • <certificate>.VALID_NOT_AFTER.BETWEEN(<time1>, <time2>):

    如果证书有效性介于 <time1> 和 <time2> 参数之间,则返回布尔值 TRUE。<time1> 和 <time2> 必须完全指定。下面是示例:

    GMT 1995 Jan 是完全指定的。

    GMT Jan 未完全指定

    GMT 1995 20 未完全指定。

    GMT Jan Mon_2 未完全指定。

    <time1>和 <time2> 参数必须同时为 GMT 或同时为本地,并且 <time2> 必须大于 <time1>。

    例如,如果时间为 GMT 2005 May 1 10h 15m 30s,并且是该月的第一个星期天,您可以指定以下内容(评估结果在括号中)。

    • . . .between(GMT 2004, GMT 2006) (TRUE)
    • . . .between(GMT 2004 Jan, GMT 2006 Nov) (TRUE)
    • . . .between(GMT 2004 Jan, GMT 2006) (TRUE)
    • . . .between(GMT 2005 May Sun_1, GMT 2005 May Sun_3) (TRUE)
    • . . .between(GMT 2005 May 1, GMT May 2005 1) (TRUE)
    • . . .between(LOCAL 2005 May 1, LOCAL May 2005 1) (TRUE 或 FALSE,具体取决于 Citrix ADC 系统时区)
  • <certificate>.VALID_NOT_AFTER.DAY:

    提取证书有效的月份的最后一天,并根据日期返回 1 到 31 之间的数字。

  • <certificate>.VALID_NOT_AFTER.EQ(<time>):

    如果时间等于 <time> 参数,则返回布尔值 TRUE。

    例如,如果当前时间是 GMT 2005 May 1 10h 15m 30s,并且是该月的第一个星期天,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .eq(GMT 2005) (TRUE)
    • . . .eq(GMT 2005 Dec) (FALSE)
    • . . .eq(LOCAL 2005 May)(TRUE 或 FALSE,具体取决于当前时区)
    • . . .eq(GMT 10h) (TRUE)
    • . . .eq(GMT 10h 30s) (TRUE)
    • . . .eq(GMT May 10h) (TRUE)
    • . . .eq(GMT Sun) (TRUE)
    • . . .eq(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_AFTER.GE(<time>):

    如果时间值大于或等于参数 <time>,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .ge(GMT 2004) (TRUE)
    • . . .ge(GMT 2005 Jan) (TRUE)
    • . . .ge(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .ge(GMT 8h) (TRUE)
    • . . .ge(GMT 30m) (FALSE)
    • . . .ge(GMT May 10h) (TRUE)
    • . . .ge(GMT May 10h 0m) (TRUE)
    • . . .ge(GMT Sun) (TRUE)
    • . . .ge(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_AFTER.GT(<time>):

    如果时间值大于参数 <time>,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .gt(GMT 2004) (TRUE)
    • . . .gt(GMT 2005 Jan) (TRUE)
    • . . .gt(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .gt(GMT 8h) (TRUE)
    • . . .gt(GMT 30m) (FALSE)
    • . . .gt(GMT May 10h) (FALSE)
    • . . .gt(GMT Sun) (FALSE)
    • . . .gt(GMT May Sun_1) (FALSE)
  • <certificate>.VALID_NOT_AFTER.HOURS:

    提取证书有效的最后一小时,并以 0 到 23 的整数形式返回该值。

  • <certificate>.VALID_NOT_AFTER.LE(<time>):

    如果时间在 <time> 参数之前或等于参数,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .le(GMT 2006) (TRUE)
    • . . .le(GMT 2005 Dec) (TRUE)
    • . . .le(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .le(GMT 8h) (FALSE)
    • . . .le(GMT 30m) (TRUE)
    • . . .le(GMT May 10h) (TRUE)
    • . . .le(GMT Jun 11h) (TRUE)
    • . . .le(GMT Wed) (TRUE)
    • . . .le(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_AFTER.LT(<time>):

    如果时间位于 <time> 参数之前,则返回布尔值 TRUE。

    例如,如果当前时间为 GMT 2005 May 1 10h 15m 30s,并且是该月的第一个星期天,您可以指定以下内容:

    • . . .lt(GMT 2006) (TRUE)
    • . . .lt(GMT 2005 Dec) (TRUE)
    • . . .lt(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .lt(GMT 8h) (FALSE)
    • . . .lt(GMT 30m) (TRUE)
    • . . .lt(GMT May 10h) (FALSE)
    • . . .lt(GMT Jun 11h) (TRUE)
    • . . .lt(GMT Wed) (TRUE)
    • . . .lt(GMT May Sun_1) (FALSE)
  • <certificate>.VALID_NOT_AFTER.MINUTES:

    提取证书有效的最后一分钟,并以 0 到 59 的整数形式返回该值。

  • <certificate>.VALID_NOT_AFTER.MONTH:

    提取证书有效的最后一个月,并以 1(1 月)到 12(12 月)的整数形式返回该值。

  • <certificate>.VALID_NOT_AFTER.RELATIVE_BOOT:

    计算与前一次或计划重新启动最接近的秒数,并返回一个整数。如果最接近的启动时间是过去,则整数为负数。如果在未来,则整数为正数。

  • <certificate>.VALID_NOT_AFTER.RELATIVE_NOW;

    计算当前系统时间与指定时间之间的秒数,并返回整数。如果时间在过去,则整数为负数;如果将来是整数,则整数为正数。

  • <certificate>.VALID_NOT_AFTER.SECONDS:

    提取证书有效的最后一秒,并以 0 到 59 的整数形式返回该值。

  • <certificate>.VALID_NOT_AFTER.WEEKDAY:

    提取证书有效的最后一个工作日。返回一个介于 0(星期日)和 6(星期六)之间的数字,以在时间值中给出工作日。

  • <certificate>.VALID_NOT_AFTER.WITHIN(<time1>, <time2>):

    如果时间位于 <time1> 和中元素定义的所有范围内,则返回布尔值 TRUE <time2>。

    如果省略某个时间元素 <time1>,则假定该元素在其范围内具有最低值。如果省略某个元素 <time2>,则假定它具有其范围的最高值。如果您在 <time1> 中指定年份,则必须在 <time2> 中指定该年份。

    时间元素的范围如下:月 1-12、日 1-31、平日 0-6、小时 0-23、分钟 0-59 和秒 0-59。要使结果为 TRUE,时间中的每个元素必须存在于您在中指定的相应范围内 <time1> <time2>。

    例如,如果时间为 GMT 2005 May 10 10h 15m 30s,并且是该月的第二个星期二,则可以指定以下内容(评估结果在括号中):

    • . . .within(GMT 2004, GMT 2006) (TRUE)
    • . . .within(GMT 2004 Jan, GMT 2006 Mar) (FALSE, May is not in the range of January to March.)
    • . . .within(GMT Feb, GMT)(TRUE, 5 月在 2 月到 12 月范围内。)
    • . . .within(GMT Sun_1, GMT Sun_3)(TRUE,第二个星期二在第一个星期日到第三个星期日的范围内)
    • . . .within(GMT 2005 May 1 10h, GMT May 2005 1 17h) (TRUE)
    • . . .within(LOCAL 2005 May 1, LOCAL May 2005 1) (TRUE 或 FALSE,具体取决于 Citrix ADC 系统时区)
  • <certificate>.VALID_NOT_AFTER.YEAR:

    提取证书有效的最后一年,并返回四位数整数。

  • <certificate>.VALID_NOT_BEFORE:

    返回客户端证书的有效日期。

    返回格式是自 1970 年 1 月 1 日格林威治标准时间以来的秒数(0 小时,0 分钟,0 秒)。

  • <certificate>.VALID_NOT_BEFORE.BETWEEN(<time1>, <time2>):

    如果时间值介于两个时间参数之间,则返回布尔值 TRUE。<time1> 和 <time2> 参数完全指定。

    下面是示例:

    GMT 1995 Jan 是完全指定的。 GMT Jan 未完全指定。 GMT 1995 20 未完全指定。 GMT Jan Mon_2 未完全指定。 时间参数必须同时为 GMT 或同时为本地,并且 <time2> 必须大于 <time1>。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .between(GMT 2004, GMT 2006) (TRUE)
    • . . .between(GMT 2004 Jan, GMT 2006 Nov) (TRUE)
    • . . .between(GMT 2004 Jan, GMT 2006) (TRUE)
    • . . .between(GMT 2005 May Sun_1, GMT 2005 May Sun_3) (TRUE)
    • . . .between(GMT 2005 May 1, GMT May 2005 1) (TRUE)
    • . . .between(LOCAL 2005 May 1, LOCAL May 2005 1) (TRUE 或 FALSE,具体取决于 Citrix ADC 系统时区)
  • <certificate>.VALID_NOT_BEFORE.DAY:

    提取证书有效的月份最后一天,并将该值作为从 1 到 31 表示该日期的数字返回。

  • <certificate>.VALID_NOT_BEFORE.EQ(<time>):

    如果时间等于 <time> 参数,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .eq(GMT 2005) (TRUE)
    • . . .eq(GMT 2005 Dec) (FALSE)
    • . . .eq(LOCAL 2005 May)(TRUE 或 FALSE,具体取决于当前时区)
    • . . .eq(GMT 10h) (TRUE)
    • . . .eq(GMT 10h 30s) (TRUE)
    • . . .eq(GMT May 10h) (TRUE)
    • . . .eq(GMT Sun) (TRUE)
    • . . .eq(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_BEFORE.GE(<time>):

    如果时间大于(之后)或等于 参数,则<time> 返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(评估结果在括号中):

    • . . .ge(GMT 2004) (TRUE)
    • . . .ge(GMT 2005 Jan) (TRUE)
    • . . .ge(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .ge(GMT 8h) (TRUE)
    • . . .ge(GMT 30m) (FALSE)
    • . . .ge(GMT May 10h) (TRUE)
    • . . .ge(GMT May 10h 0m) (TRUE)
    • . . .ge(GMT Sun) (TRUE)
    • . . .ge(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_BEFORE.GT(<time>):

    如果时间发生在 参数之后,则 <time> 返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(评估结果在括号中):

    • . . .gt(GMT 2004) (TRUE)
    • . . .gt(GMT 2005 Jan) (TRUE)
    • . . .gt(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .gt(GMT 8h) (TRUE)
    • . . .gt(GMT 30m) (FALSE)
    • . . .gt(GMT May 10h) (FALSE)
    • . . .ge(GMT May 10h 0m) (TRUE)
    • . . .gt(GMT Sun) (FALSE)
    • . . .gt(GMT May Sun_1) (FALSE)
  • <certificate>.VALID_NOT_BEFORE.HOURS:

    提取证书有效的最后一小时,并以 0 到 23 的整数形式返回该值。

  • **<certificate>.VALID_NOT_BEFORE.LE(<time>)

    如果时间在 <time> 参数之前或等于参数,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .le(GMT 2006) (TRUE)
    • . . .le(GMT 2005 Dec) (TRUE)
    • . . .le(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .le(GMT 8h) (FALSE) . - . .le(GMT 30m) (TRUE)
    • . . .le(GMT May 10h) (TRUE)
    • . . .le(GMT Jun 11h) (TRUE)
    • . . .le(GMT Wed) (TRUE)
    • . . .le(GMT May Sun_1) (TRUE)
  • <certificate>.VALID_NOT_BEFORE.LT(<time>):

    如果时间位于 <time> 参数之前,则返回布尔值 TRUE。

    例如,如果时间值是 GMT 2005 May 1 10h 15m 30s,并且它是 2005 年 5 月的第一个星期日,您可以指定以下内容(此示例的评估结果在括号中):

    • . . .lt(GMT 2006) (TRUE)
    • . . .lt(GMT 2005 Dec) (TRUE)
    • . . .lt(LOCAL 2005 May) (TRUE 或 FALSE, 具体取决于当前时区。)
    • . . .lt(GMT 8h) (FALSE)
    • . . .lt(GMT 30m) (TRUE)
    • . . .lt(GMT May 10h) (FALSE)
    • . . .lt(GMT Jun 11h) (TRUE)
    • . . .lt(GMT Wed) (TRUE)
    • . . .lt(GMT May Sun_1) (FALSE)
  • <certificate>.VALID_NOT_BEFORE.MINUTES:

    提取证书有效的最后一分钟。以 0 到 59 的整数形式返回当前分钟。

  • <certificate>.VALID_NOT_BEFORE.MONTH:

    提取证书有效的最后一个月。返回从 1(1 月)到 12(12 月)的当前月份的整数。

  • <certificate>.VALID_NOT_BEFORE.RELATIVE_BOOT:

    计算与之前或计划的 Citrix ADC 重新启动最接近的秒数,并返回整数。如果最接近的启动时间是过去,则整数为负;如果将来是,则整数为正数。

  • <certificate>.VALID_NOT_BEFORE.RELATIVE_NOW:

    以整数形式返回当前 Citrix ADC 系统时间与指定时间之间的秒数。如果指定的时间是过去的,则整数为负数。如果在未来,则整数为正数。

  • <certificate>.VALID_NOT_BEFORE.SECONDS:

    提取证书有效的最后一秒。以 0 到 59 的整数形式返回当前秒。

  • <certificate>.VALID_NOT_BEFORE.WEEKDAY:

    提取证书有效的最后一个工作日。以 0(星期日)和 6(星期六)之间的数字形式返回工作日。

  • <certificate>.VALID_NOT_BEFORE.WITHIN(<time1>, <time2>):

    如果每个时间元素都存在于 <time1>, <time2> 参数中定义的范围内,则返回布尔值 TRUE。

    如果省略某个时间元素 <time1>,则假定该元素在其范围内具有最低值。如果省略某个时间元素 <time2>,则假定该元素在其范围内具有最高值。如果您在 <time1> 中指定年份,则必须在 <time2> 中指定该年份。时间元素的范围如下:月 1-12、日 1-31、平日 0-6、小时 0-23、分钟 0-59 和秒 0-59。

    例如,如果时间为 GMT 2005 May 10 10h 15m 30s,并且是该月的第二个星期二,则可以指定以下内容(评估结果在括号中):

    • . . .within(GMT 2004, GMT 2006) (TRUE)
    • . . .within(GMT 2004 Jan, GMT 2006 Mar) (FALSE, May is not in the range of January to March.)
    • . . .within(GMT Feb, GMT)(TRUE, 5 月在 2 月到 12 月范围内。)
    • . . .within(GMT Sun_1, GMT Sun_3)(TRUE,第二个星期二介于第一个星期日和第三个星期日之间。)
    • . . .within(GMT 2005 May 1 10h, GMT May 2005 1 17h) (TRUE)
    • . . .within(LOCAL 2005 May 1, LOCAL May 2005 1) (TRUE 或 FALSE,具体取决于 Citrix ADC 系统时区)
  • <certificate>.VALID_NOT_BEFORE.YEAR:

    提取证书有效的最后一年。以四位数整数形式返回当前年份。

SSL 证书日期的表达式