0

尝试在 tomcat 6.x 服务器上运行启用 SSL 的应用程序时出现错误。启用 APR。

我像这样创建了证书:

openssl genrsa -des3 -out key.pem 2048
passphrase

openssl req -new -x509 -key key.pem -out cert.pem -days 1095
passphrase

我的 ssl 配置如下所示:

<Connector protocol="org.apache.coyote.http11.Http11AprProtocol"
           port="8444" minSpareThreads="5" maxSpareThreads="75"
           enableLookups="true" disableUploadTimeout="true"
           acceptCount="100"  maxThreads="200"
     scheme="https" secure="true" SSLEnabled="true"
           clientAuth="false" sslProtocol="TLS"
                   SSLCertificateFile="/usr/local/tomcat/conf/ssl/cert.pem"
           SSLCertificateKeyFile="/usr/local/tomcat/conf/ssl/key.pem"
                  SSLPassword="passphrase"/>
           />

您可能会注意到这些端口是非标准的。这是因为我在这个系统上有两个独立的 tomcat 应用程序,它们都使用 SSL。我认为这不是问题,因为即使我关闭了另一个 tomcat 并且只运行有问题的 tomcat 实例,我也会得到同样的错误。

因此,一个实例使用 8080/8443,而问题一个使用 8081/8444。
好的 tomcat 实例总是可以完美运行。没有ssl,问题安装工作正常。我试过只运行问题实例,但我仍然遇到同样的问题,所以我认为问题与此无关,但我认为我应该披露。我还尝试在坏的那个上使用功能正常的 tomcat 的 ssl 密钥和证书,但仍然遇到相同的错误,所以我认为也不是这样。

因此,我很困惑。

以下是我不断收到的错误:

SEVERE: Error initializing endpoint java.lang.Exception: Invalid Server SSL Protocol
        at org.apache.tomcat.jni.SSLContext.make(Native Method)
        at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:680)
        at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107)


LifecycleException:  Protocol handler initialization failed: java.lang.Exception: Invalid Server SSL Protocol
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1060)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:677)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:530)

SEVERE: Error starting endpoint
java.lang.Exception: Socket bind failed: [98] Address already in use
        at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:612)
        at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:717)
        at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
        at org.apache.catalina.connector.Connector.start(Connector.java:1131)
        at org.apache.catalina.core.StandardService.start(StandardService.java:531)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)

LifecycleException:  service.getName(): "Catalina";  Protocol handler start failed: java.lang.Exception: Socket bind failed: [98] Address already in use
        at org.apache.catalina.connector.Connector.start(Connector.java:1138)
        at org.apache.catalina.core.StandardService.start(StandardService.java:531)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)

帮助表示赞赏。

4

1 回答 1

0

将标签中的协议从“org.apache.coyote.http11.Http11AprProtocol”更改为“org.apache.coyote.http11.Http11NioProtocol”并尝试一次

于 2018-07-06T06:55:56.160 回答