ошибка сертификата SSL для Tomcat

Я сделал следующие шаги в http://www.globalsign.com/support/install/install_tomcat.php, используя следующую запись в server.xml:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
    keystoreFile="D:Tomcatukdp.keystore" keystorePass="123456" keyAlias="ukdp"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />

но при запуске происходит следующее исключение:

SEVERE: Error initializing endpoint
java.io.IOException: Alias name ukdp does not identify a key entry
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:412)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:378)
at 

org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:125)
    at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:496)
    at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:177)
    at org.apache.catalina.connector.Connector.initialize(Connector.java:1059)
    at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
    at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:792)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:518)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
Mar 14, 2011 4:14:56 PM org.apache.catalina.startup.Catalina load

когда я удалить keyAlias запись выглядит следующим образом:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
keystoreFile="D:Tomcatukdp.keystore" keystorePass="123456" 
       maxThreads="150" scheme="https" secure="true"
       clientAuth="false" sslProtocol="TLS" />

при запуске происходит следующее исключение:

SEVERE: Socket accept failed
java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150)
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
    at java.lang.Thread.run(Unknown Source)
Mar 14, 2011 4:20:31 PM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
SEVERE: Socket accept failed
java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150)
    at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
    at java.lang.Thread.run(Unknown Source)
Mar 14, 2011 4:20:31 PM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
SEVERE: Socket accept failed

2 ответов


что в вашем keystore для начала.

keytool -list -keystore D:\Tomcat\ukdp.keystore -storepass 123456

если действительно нет ключа "udkp", вот ваша проблема.


перечислите все объекты в хранилище ключей с помощью

keytool -list -keystore D:\Tomcat\ukdp.keystore -storepass 123456

Если запись отсутствует, вам нужно импортировать ее как PrivateKeyEntry. Если он есть, посмотрите, что это тип PrivateKeyEntry, а не trustedCertEntry.

Если тип trustedCertEntry и вы хотите изменить его, процесс, который я нашел следующим образом:

#Convert to the key type to pkcs12
openssl pkcs12 -export -inkey myserverkey.key -in myserver.crt -out tempstore.p12


#Import to keystore:
keytool -importkeystore -srckeystore tempstore.p12 -srcstoretype PKCS12 -destkeystore keystore.jks

#List:
keytool -list -v -keystore keystore.jks
#Note the alias, usually gets "1", we need to change it

#Change alias:
keytool -changealias -alias 1 -destalias mywantedkeyalias -keystore keystore.jks

с очевидными изменениями myserverkey.ключ, myserver.crt, хранилище.jks и mywantedkeyalias