如何从Groovy Jmeter中的Local Computer\Personal\Certificates路径检索证书

z9gpfhce  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(84)

我试图使用Jmeter中的JSR223 Sampler中的Groovy检索存储在Windows机器上的“Local Computer\Personal\Certificates”路径中的证书。我用下面的代码段测试我的代码:

import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import java.security.MessageDigest;
import java.io.IOException;

try {
    KeyStore keystore = KeyStore.getInstance("Windows-MY");
    keystore.load(null, null);
    
    String keystoreProvider = keystore.getProvider().getName(); 

    Enumeration<String> aliases = keystore.aliases();
    while (aliases.hasMoreElements()) {
        String alias = aliases.nextElement();
        Certificate cert = keystore.getCertificate(alias);

        if (cert instanceof X509Certificate) {
            X509Certificate x509Cert = (X509Certificate) cert;

            log.info("Location: " + keystoreProvider);
            log.info("Alias: " + alias);
            log.info("Subject: " + x509Cert.getSubjectDN());
            log.info("Issuer: " + x509Cert.getIssuerDN());
            log.info("Serial Number: " + x509Cert.getSerialNumber());
            log.info("Valid From: " + x509Cert.getNotBefore());
            log.info("Valid To: " + x509Cert.getNotAfter());
            log.info("------------------------------------------------");
        }
    }
} catch (Exception e) {
    log.error("Error: " + e.getMessage());
}

然而,这段代码检索各种证书,但它似乎没有检索位于“Personal\Certificates”中的证书。这可能是由于KeyStore示例的问题吗?是什么导致了这种差异?

jmo0nnb3

jmo0nnb31#

看起来个人证书或本地证书在Java的更高版本之前是不可能的。
https://bugs.openjdk.org/browse/JDK-6782021
JDK 17或19+。

相关问题