Tomcat - 使用 SSL 连接器启动时出现空指针异常

标签 tomcat ssl config

我想为我的 Tomcat 9.0 服务器添加 SSL 可能性。正如 Tomcat 的说明所说,我已经使用 keytool 生成了一个 key ,并将以下连接器添加到 server.xml 文件

<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"/>

当我尝试启动服务器时出现以下错误(并且 ssl 端口不工作):

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)

不知道是不是bug,还是我做的不对。

最佳答案

解决方案令人惊讶,但是在 key 生成期间,别名属性必须设置为“tomcat”

有我的例子:

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

关于Tomcat - 使用 SSL 连接器启动时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562741/

相关文章:

java - 获取 Tomcat 容器名称后的 URI 部分

ssl - 自动找到正确的中间 CA 证书

c# - 我可以从 System.Net.Security.SslStream 获得什么级别的线程安全?

electron - 如何使用 Electron 存储将对象插入对象数组

eclipse - 按 F11 立即进入 pydev 交互式控制台?

java - Tomcat 服务器 "Commons Daemon Service Manager"命令提示符

java - 如何更改 Tomcat 默认工作目录?

java - 在tomcat的webapps文件夹中找不到eclipse发布的webapp

javascript - 开发时避免使用 SSL 证书

erlang - Windows x64 RabbitMQ 安装错误,Erlang 环境变量 (ERLANG_HOME)