linux - 带 SSL 的 tomcat APR - 端口 98 已被使用/无效的服务器 SSL 协议(protocol)

标签 linux tomcat ssl apr

我在尝试让启用 SSL 的应用程序在 tomcat 6.x 服务器上运行时遇到错误。 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 的情况下工作正常。我试过只运行问题实例,但我仍然遇到同样的问题,所以我认为问题与此无关,但我认为我应该披露。我还尝试在坏 key 上使用正常运行的 tomcat 的 ssl key 和证书,但仍然出现相同的错误,所以我认为也不是。

因此,我很困惑。

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

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)

感谢帮助。

最佳答案

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

关于linux - 带 SSL 的 tomcat APR - 端口 98 已被使用/无效的服务器 SSL 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150360/

相关文章:

tomcat 7 cors过滤器

postgresql - 如何使用 SSL 将 Google Data Studio 数据源连接到 Azure Postgres

python - BSD/OS X 上的网络掩码/IP 地址查找

linux - 如何通过无线网络连接到 VMware Linux 客户机?

tomcat - apache tomcat 9 中的主要方法在哪里?

php - 缺少 SSL 证书?

ssl - 为什么在 SCTP 上使用 DTLS?

linux - Yocto 自定义层在 mkfs.ext4 之后在 do_rootfs 上运行 Tune2fs

linux - 由于 TLS 错误,无法进行 svn checkout

session - Tomcat:如何从 servlet 访问( session )管理器