有没有办法从 etoken 中提取证书

Is there a way to extract a certificate from an etoken

有没有办法使用 java 以编程方式从电子令牌中提取证书?

如果是,是否可以将其转换为 Java KeyStore(.jks) 文件?

这是我的代码

    String alias;
    SunPKCS11 sunpkcs11;
    Key privateKey;


    String cfgFile = "D:\cfgFile.cfg";

    sunpkcs11 = new SunPKCS11(cfgFile);

    Security.addProvider(sunpkcs11);
    alias = "myAlias";
KeyStore.Builder builderRunning = KeyStore.Builder.newInstance("PKCS11", sunpkcs11,new KeyStore.CallbackHandlerProtection(new CallbackHandler() {
        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {

          }}));

KeyStore keyStore = builder.getKeyStore();

        // get my private key

            KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry) keyStore.getEntry(alias,
                    new KeyStore.PasswordProtection("password".toCharArray()));
            privateKey = pkEntry.getPrivateKey();

它returns 一个空指针异常。 我是新手,不知道如何继续。

您需要证书或私钥吗?证书是可提取的,但在大多数情况下私钥不是。这就是为什么你得到一个例外。