如何验证 CRL 是否在安全 MarkLogic 数据库中?

How do I verify that a CRL is in the security MarkLogic database?

文档指出 CRL 已插入到安全数据库中,但我无法使用 xdmp:document-get("pca3.crl") 针对安全数据库找到文件。

https://docs.marklogic.com/pki:insert-certificate-revocation-list

  xquery version "1.0-ml"; 

  import module namespace pki = "http://marklogic.com/xdmp/pki" 
  at "/MarkLogic/pki.xqy";

  let $URI := "http://crl.verisign.com/pca3.crl"

  return
    pki:insert-certificate-revocation-list(
       $URI, 
       xdmp:document-get($URI)/binary() )

  (: Inserts a CRL from Verisign into the database. :)

您可以在查询控制台中使用以下命令列出所有证书吊销列表:

cts:uri-match("*crls*")

URL由以下部分组成: (也许是一些根)+ /crls/ +(原始 URI 的 hash64 整数)。 因此,您假设原始文件名或 URL 是 URL 的可见部分是无效的。

如果您想验证您的 CRLS,那么这应该是一种快速的方法:

declare namespace pki = "http://marklogic.com/xdmp/pki"

doc()[.//pki:url="http://crl.verisign.com/pca3.crl"]

另外,如果要找文档,可以这样找:

declare namespace pki = "http://marklogic.com/xdmp/pki"

fn:document-uri(doc()[.//pki:url="http://crl.verisign.com/pca3.crl"])

请注意,我避免使用元素值或单词搜索,因为这些可能未针对安全数据库启用。