Java SSL ile ilgili sorun yaşıyorum. Sorun benim anahtarımın bir şifresi var. için sorulduğunda openssl req -new -newkey rsa:1024 -nodes -out local.csr -keyout local.key
komutunu kullanarak anahtarı oluşturduğumda, MyKeyPass
girdim. Daha sonra Sertifika Yetkilisi'nden sertifika aldım. Daha sonra sertifikayı bir KeyStore ve TrustStore'a aktardım.javax.net.ssl kullanarak anahtar parolası nasıl belirlenir?
Uygulamalarımdan biri Jetty'ye dayanıyor ve Maven'i kullanıyor, diğeri ham soket kullanıyor ve Maven'i bunun için kullanmıyorum.
aşağıdaki yapılandırmayı kullanarak, Jetty'e ile sertifika kullanmak
, her şey iyi çalışır: Ancak<connector implementation="org.mortbay.jetty.security.SslSelectChannelConnector">
<port>443</port>
<maxIdleTime>30000</maxIdleTime>
<keystore>keys/domain.jks</keystore>
<password>KeyStorePass</password>
<keyPassword>MyKeyPass</keyPassword>
<truststore>keys/truststore_domain.jks</truststore>
<trustPassword>TrustStorePass</trustPassword>
</connector>
App İskele/Maven kullanmayan için, aşağıdaki yapılandırma çalışmıyor:
-Djavax.net.ssl.keyStore=./keys/domain.jks \
-Djavax.net.ssl.keyStorePassword=KeyStorePass \
-Djavax.net.ssl.trustStore=./keys/truststore_domain.jks \
-Djavax.net.ssl.trustStorePassword=TrustStorePass \
tabii
Caused by: java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:328)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:138)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:55)
at java.security.KeyStore.getKey(KeyStore.java:792)
at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:131)
at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:68)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:259)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(SSLContextImpl.java:621)
at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:486)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at java.security.Provider$Service.newInstance(Provider.java:1238)
... 12 more
, öyle:
aşağıdaki hatayı alıyorum KeyPassword eksik (MyKeyPass
). -Djavax.net.ssl
sözdizimini kullanarak nasıl belirtileceğini bulmaya çalışıyorum, ancak bulamıyor gibi görünmüyor. Anahtar Şifresini nasıl belirleyebilirim?
'KeyStorePass' işlevinin' MyKeyPass' olarak değiştirilmesi işe yaradı. Teşekkürler. –