首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有找到SunPKCS11提供程序

没有找到SunPKCS11提供程序
EN

Stack Overflow用户
提问于 2017-11-21 12:06:35
回答 1查看 4.7K关注 0票数 5

我正在使用java 9运行以下命令:

密钥工具-keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS 11 -providerArg pkcs11conf -list

得到流动的错误:

关键工具错误: java.lang.Exception:找不到提供者“sun.security.pkcs11.SunPKCS 11”

在Java 8中,它可以工作。

如何在SunPKCS11提供程序中使用keytool?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-22 08:13:36

问题在于我的pkcs11conf文件。Java不喜欢我的DLL路径中的单个反斜杠:

"C:\Path\to\my\pkcs11lib\mypkcs11lib.dll“:错了 "C:\Path\to\my\pkcs11lib\mypkcs11lib.dll“:好

Java 8和Java 9的不同之处在于错误消息。

Java 9:

代码语言:javascript
复制
keytool error: java.lang.Exception: Provider "sun.security.pkcs11.SunPKCS11" not found

Java 8:

代码语言:javascript
复制
keytool error: java.lang.reflect.InvocationTargetException

当我将-v添加到命令中时,我意识到了这一点。

Java 9:

代码语言:javascript
复制
java.lang.Exception: Provider "sun.security.pkcs11.SunPKCS11" not found
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:798)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:397)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:390)
Caused by: sun.security.pkcs11.ConfigurationException: Absolute path required for library value: xxx.dll
        at jdk.crypto.cryptoki/sun.security.pkcs11.Config.parseLibrary(Config.java:682)
        at jdk.crypto.cryptoki/sun.security.pkcs11.Config.parse(Config.java:392)
        at jdk.crypto.cryptoki/sun.security.pkcs11.Config.<init>(Config.java:210)
        at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11$1.run(SunPKCS11.java:113)
        at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11$1.run(SunPKCS11.java:110)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at jdk.crypto.cryptoki/sun.security.pkcs11.SunPKCS11.configure(SunPKCS11.java:110)
        at java.base/sun.security.tools.KeyStoreUtil.loadProviderByName(KeyStoreUtil.java:285)
        at java.base/sun.security.tools.KeyStoreUtil.loadProviderByClass(KeyStoreUtil.java:309)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:788)
        ... 2 more

Java 8:

代码语言:javascript
复制
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at sun.security.tools.keytool.Main.doCommands(Unknown Source)
        at sun.security.tools.keytool.Main.run(Unknown Source)
        at sun.security.tools.keytool.Main.main(Unknown Source)
Caused by: java.security.ProviderException: Error parsing configuration
        at sun.security.pkcs11.Config.getConfig(Config.java:88)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:129)
        at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:103)
        ... 7 more
Caused by: sun.security.pkcs11.ConfigurationException: Absolute path required for library value: xxx.dll
        at sun.security.pkcs11.Config.parseLibrary(Config.java:690)
        at sun.security.pkcs11.Config.parse(Config.java:398)
        at sun.security.pkcs11.Config.<init>(Config.java:220)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47412758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档