我有一个系统,其中 X509 证书可以有许多“模式”,其中模式是证书主题中必需/可选的确切 OID 的集合。验证这些证书的应用程序需要知道给定证书使用了什么架构(以及该架构的哪个版本)。
例如,模式 A 需要 CN、O、OU,模式 B 需要 CN、UID、O、C、ST。
我正在寻找一种标准方法来对证书中的架构(+ 版本)进行编码,以便接收应用程序可以从证书中得知如何解析它。解决方案:
- 劫持一些完全不相关的 OID 将这些信息填充到主题中。我不喜欢这个,但它可以作为一个hack-y后备。
- 使用扩展。我认为主题目录属性看起来可能是合适的,但它似乎仍然需要 OID 名称/值对作为其有效负载,那么又是哪些 OID?
- 完全不同的东西?
同样,我可以使用 #1 来完成这项工作,或者可以使用 #2 进行类似的 hack,但我真正想要的是一种标准的非 hack 方式来实现这个目标。