2016-11-12 18 views
5

Tôi muốn thêm khả năng SSL vào máy chủ Tomcat 9.0 của mình. Như hướng dẫn của Tomcat nói, tôi đã tạo ra một chìa khóa với keytool và thêm một đầu nối sau để file server.xmlTomcat - ngoại lệ con trỏ null khi bắt đầu với đầu nối SSL

<Connector 
     protocol="org.apache.coyote.http11.Http11NioProtocol" 
     port="8443" maxThreads="200" 
     scheme="https" secure="true" SSLEnabled="true" 
     keystoreFile="C:\Moje_programy\spring\apache-tomcat-9.0.0.M11\klucz" keystorePass="samplepassword" 
     clientAuth="false" sslProtocol="TLS"/> 

Khi tôi đang cố gắng để khởi động máy chủ Tôi nhận được lỗi sau (và cổng ssl là không làm việc):

12-Nov-2016 13:06:18.187 WARNING [main] org.apache.tomcat.util.net.openssl.OpenSSLContext.init Error initializ ing SSL context java.lang.NullPointerException 
     at org.apache.tomcat.util.net.openssl.OpenSSLContext.init(OpenSSLContext.java:276) 
     at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:100) 
     at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:80) 
     at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:245) 
     at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866) 
     at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:575) 
     at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65) 
     at org.apache.catalina.connector.Connector.initInternal(Connector.java:944) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:105) 
     at org.apache.catalina.core.StandardService.initInternal(StandardService.java:549) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:105) 
     at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873) 
     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:105) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:606) 
     at org.apache.catalina.startup.Catalina.load(Catalina.java:629) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:498) 
     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494) 

tôi không biết nếu đó là một số lỗi, hoặc tôi đã thực hiện một cái gì đó không đúng ..

Trả lời

5

giải pháp này đáng ngạc nhiên, nhưng trong thế hệ quan trọng, sở hữu bí danh phải được thiết lập để "tomcat "

Có ví dụ của tôi:

c:\Program Files\Java\jdk1.8.0_112\bin>keytool -genkey -alias tomcat -keyalg RSA -keystore C:\Moje_programy\spring\apache-tomcat-9.0.0.M11\klucz 
+0

cảm ơn. hoạt động này :) – maamaa

+0

Vấn đề tương tự khi sử dụng Webapp Runner, phải thêm '-Djavax.net.ssl.keyStoreAlias ​​= mydomain.com' ngoài' -Djavax.net.ssl.keyStore = 'và' -Djavax.net.ssl .keyStorePassword = '. (Bí danh là điều đầu tiên hiển thị trong Portecle khi mở tệp .jks) –

1

Tôi tìm thấy câu trả lời khác cũng được hỗ trợ bởi câu trả lời của bạn. Bạn có thể có bí danh chứng chỉ tùy chỉnh và phương pháp của tôi như bên dưới

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
       maxThreads="150" SSLEnabled="true"> 
     <SSLHostConfig> 
      <Certificate certificateKeystoreFile="<path to keystore>\myks.jks" 
      certificateKeystorePassword="abc123" 
      certificateKeyAlias="giganet.com" 
         type="RSA" /> 
     </SSLHostConfig> 
    </Connector> 
Các vấn đề liên quan