当 S/MIME applet 向 Messaging Server 发送检查证书的请求后,Messaging Server 将根据 CRL 检查证书。Messaging Server 并不是在每次检查证书时都将 CRL 下载到内存中,而是将 CRL 的副本下载到磁盘中并使用该副本进行证书检查。每个 CRL 都有一个下次更新字段,该字段指定在哪个日期后应该使用更新的 CRL 版本。下次更新日期可被视为使用 CRL 的截止日期或时间限制。超过下次更新日期的 CRL 将被视为旧的或过时的 CRL,并促使 Messaging Server 在下次检查证书时下载最新版本的 CRL。
每次 S/MIME applet 请求根据 CRL 检查证书时,Messaging Server 都将执行以下操作:
将 CRL 的当前日期与下次更新日期相比较。
如果 CRL 已过时,Messaging Server 将下载最新版本的 CRL 以替换磁盘上过时的 CRL,然后进行检查。但是,如果找不到或无法下载最新的 CRL,将使用 smime.conf 文件中的 crlusepastnextupdate 的值来确定要执行的操作。
如果 crlusepastnextupdate 被设置为 0,则不使用过时的 CRL,并且有问题的证书将处于一种待决状态。S/MIME Applet 使用 smime.conf 中的 revocationunknown 的值来确定下一步操作:
如果 revocationunknown 被设置为 ok,证书将被视为有效,并将使用私钥或公钥对邮件进行签名或加密。
如果 revocationunknown 被设置为 revoked,证书将被视为无效,且不使用私钥或公钥对邮件进行签名或加密,系统将显示一条弹出式错误消息,警告邮件用户无法使用密钥。
如果 crlusepastnextupdate 被设置为 1,S/MIME Applet 将继续使用过时的 CRL,这样会使 Communications Express Mail 中的处理不会出现任何中断,但系统会向 Messaging Server 日志文件写入一条消息,警告您出现了这种情况。
这一系列事件将根据 CRL 检查证书的顺序继续发生。只要 Messaging Server 能够及时下载最新版本的 CRL,邮件处理就会根据 smime.conf 文件中的设置继续进行而不会中断。定期检查 Messaging Server 日志以查看是否存在指明正在使用过时 CRL 的重复消息。如果无法下载更新的 CRL,您需要调查无法访问此 CRL 的原因。