ADC

SSL 证书日期的表达式

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

CLIENT.SSL.CLIENT_CERT

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

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

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

  • <certificate>.VALID_NOT_AFTER:

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

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

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

    GMT 1995 Jan 已完全指定。

    GMT Jan 未完全指定

    格林威治标准时间 1995 20 尚未完全指定。

    GMT Jan Mon_2 未完全指定。

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

    例如,如果是 GMT 2005 年 5 月 1 日 10 小时 15 分 30 分,并且是当月的第一个星期日,则可以指定以下内容(评估结果在括号中)。

    • . . .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,取决于 NetScaler 系统时区。)
  • <certificate>.VALID_NOT_AFTER.DAY:

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

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

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

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

    • . . .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> 和 <time2> 中元素定义的所有范围内,则返回布尔值 TRUE。

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

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

    例如,如果时间是 GMT 2005 年 5 月 10 日 10 点 15 分 30 分,并且是当月的第二个星期二,则可以指定以下内容(评估结果在括号中):

    • . . .within(GMT 2004, GMT 2006) (TRUE)
    • . . .within(GMT 2004 Jan, GMT 2006 Mar)(FALSE,5 月不在 1 月到 3 月的范围内。)
    • . . .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,取决于 NetScaler 系统时区)
  • <certificate>.VALID_NOT_AFTER.YEAR:

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

  • <certificate>.VALID_NOT_BEFORE:

    返回客户证书生效的日期。

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

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

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

    以下是示例:

    GMT 1995 Jan 已完全指定。 GMT Jan 未完全指定。 格林威治标准时间 1995 20 尚未完全指定。 GMT Jan Mon_2 未完全指定。 时间参数必须同时为 GMT 或同时为 LOCAL,并且 <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,取决于 NetScaler 系统时区。)
  • <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)
    • . . .gt(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:

    计算距离上次或计划重新启动 NetScaler 的秒数,并返回一个整数。如果最接近的启动时间是过去,则整数为负数;如果是将来,则整数为正数。

  • <certificate>.VALID_NOT_BEFORE.RELATIVE_NOW:

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

  • <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 5 年 5 月 10 日 10h 15m 30 秒,并且是当月的第二个星期二,则可以指定以下内容(评估结果在括号中):

    • . . .within(GMT 2004, GMT 2006) (TRUE)
    • . . .within(GMT 2004 Jan, GMT 2006 Mar)(FALSE,5 月不在 1 月到 3 月的范围内。)
    • . . .within(GMT Feb, GMT)(TRUE,5 月在 2 月至 12 月的区间内。)
    • 6. . .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,取决于 NetScaler 系统时区)
  • <certificate>.VALID_NOT_BEFORE.YEAR:

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

SSL 证书日期的表达式