openjdk-17.0.1
Я использую Openssl для создания файла PKCS12. Мое хранилище ключей Java не может его прочитать.
Мои cmds openssl: (rootca.key — это частный ключ, а rootca.crt — самоподписанный сертификат.)
Код: Выделить всё
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout out.key -out out.csr -subj /C=CN/CN=-1040310296
Код: Выделить всё
openssl x509 -req -CA rootca.crt -CAkey rootca.key -days 365 -in out.csr -out out.crt -CAcreateserial -extensions v3_ca -extfile ./openssl.cnf
Код: Выделить всё
openssl pkcs12 -export -in out.crt -inkey out.key -chain -CAfile rootca.crt -name server -out out.p12 -password pass:Ff5evzT0tr
Код Java:
Код: Выделить всё
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(p12keyI, "Ff5evzT0tr".toCharArray());
Код: Выделить всё
java.io.IOException: Tag number over 30 is not supported
at java.base/sun.security.util.DerValue.(DerValue.java:414)
at java.base/sun.security.util.DerValue.(DerValue.java:459)
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2012)
at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:221)
at java.base/java.security.KeyStore.load(KeyStore.java:1473)
Код: Выделить всё
openssl pkcs12 -in out.p12 -password pass:Ff5evzT0tr -info -nodes
Код: Выделить всё
keytool -list -v -storetype PKCS12 -keystore output.p12 -storepass Ff5evzT0tr
Код: Выделить всё
keytool error: java.io.IOException: keystore password was incorrect
java.io.IOException: keystore password was incorrect
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2159)
at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:221)
at java.base/java.security.KeyStore.load(KeyStore.java:1473)
at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:946)
at java.base/sun.security.tools.keytool.Main.run(Main.java:415)
at java.base/sun.security.tools.keytool.Main.main(Main.java:408)
Caused by: java.security.UnrecoverableKeyException: failed to decrypt safe contents entry: java.security.cert.CertificateParsingException: java.io.IOException: Only named ECParameters supported
... 6 more
Спасибо всем
Подробнее здесь: https://stackoverflow.com/questions/755 ... ad-by-java