如何以编程方式访问 window 和 mac 受信任的证书库

how to programmatically acces the window and mac trusted certificate store

使用 keytool 实用程序创建自签名 java 密钥库和证书文件。 通过使用 mmc.exe 命令转到证书控制台,能够将证书添加到 windows 信任库中。

但是无论如何都可以通过编程将证书添加到 windows 信任库中。 MAC 系统也需要同样的东西。

感谢任何建议。

下面是 Windows/MAC 用于在其信任库中添加证书的代码片段。

Window:

    KeyStore root = KeyStore.getInstance("Windows-ROOT","SunMSCAPI");
    root.load(null,null);
    /* certificate must be DER-encoded */
    FileInputStream in = new FileInputStream("yourcertificate.cer");
    X509Certificate cacert = (X509Certificate)CertificateFactory.getInstance("X.509").generateCertificate(in);                      
    root.setCertificateEntry("certificatealiasname", cacert);

在windows中,它成功地将证书添加到信任库中,但由于没有管理员权限,某些系统无法运行。所以在那些机器上,如果以管理员身份登录或给用户一些管理员权限,它就会工作。

MAC:

        KeyStore root = KeyStore.getInstance("KeychainStore", "Apple");
        root.load(null);
        /* certificate must be DER-encoded */
        FileInputStream in = new FileInputStream("yourcertificate.cer");
        X509Certificate cacert = (X509Certificate)CertificateFactory.getInstance("X.509").generateCertificate(in);
        root.setCertificateEntry("certificatealiasname", cacert);
        root.store(null, null);

能够成功将证书添加到钥匙串中但不信任证书。所以需要去KeyChain Access手动信任证书。