2017-11-21 43 views
2
내가 자바 9 다음 명령을 실행하고

으로 찾을 수 없습니다SunPKCS11 프로 바이더는 키 도구

keytool -keystore NONE -storetype PKCS11 -providerClass 
    sun.security.pkcs11.SunPKCS11 -providerArg pkcs11conf -list 

과 흐르는 오류 얻을 : 그것이 작동하는 자바 8에서

keytool error: java.lang.Exception: Provider "sun.security.pkcs11.SunPKCS11" not found

합니다.

SunPKCS11 제공 업체에서 keytool을 사용하는 방법은 무엇입니까?

+1

그러나 이것은 주요 질문에 도움이되지 않습니다이 : 어떻게 만드는'keytool'는 당신이 시도 할 수 – ZhekaKozlov

+0

작업'- addprovider SunPKCS11'? –

+0

@AlanBateman은'Security.addProvider'에 대한 플래그입니다. – nullpointer

답변

0

내 pkcs11conf 파일에 문제가 있습니다. Java는 내 DLL 경로의 단일 백 슬래시를 좋아하지 않습니다.

"C:\Path\to\my\pkcs11lib\mypkcs11lib.dll" : Wrong

"C:\\Path\\to\my\\pkcs11lib\\mypkcs11lib.dll" : OK

Java 8과 Java 9의 다른 점은 오류 메시지입니다.

자바 9 :

keytool error: java.lang.Exception: Provider "sun.security.pkcs11.SunPKCS11" not found 

자바 8 :

keytool error: java.lang.reflect.InvocationTargetException 

나는 깨달았다 내가 명령에 -v을 추가 할 때.

자바 9 :

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 

자바 8 :

예 @nullpointer
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) 
+0

이 질문은 업데이트입니까, 아니면 실제로 답변입니까? – nullpointer