我正在尝试使用从 CA 获得的证书、certificateKey 和certificateChain 文件设置 HTTPS。我一直在尝试将它们安装在 Apache 8.5 服务器上,并且根据 Apache 的文档,我编辑了 server.xml 文件以包含以下内容:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/cert/private.key" certificateFile="conf/cert/certificate.crt" certificateChainFile="conf/cert/ca_bundle.crt" type="RSA" />
</SSLHostConfig>
</Connector>
但是,当我启动 Tomcat 时,即使我已经安装了 APR tomcat 本机库,也会出现以下错误:
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/local/jdk1.8.0_131/jre/lib/amd64:/usr/local/jdk1.8.0_131/jre/lib/i386::/home/conecta/Documentos/apache-tomcat-8.5.32/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[org.apache.coyote.http11.Http11AprProtocol-8443]]
(Stack trace ...)
Caused by: org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available
这是我的 $CATALINA_HOME/lib 文件夹的内容:
annotations-api.jar catalina-tribes.jar jaspic-api.jar libtcnative-2.so.0 tomcat-dbcp.jar tomcat-jni.jar
catalina-ant.jar ecj-4.6.3.jar jsp-api.jar libtcnative-2.so.0.0.6 tomcat-i18n-es.jar tomcat-util.jar
catalina-ha.jar el-api.jar libtcnative-2.a servlet-api.jar tomcat-i18n-fr.jar tomcat-util-scan.jar
catalina.jar jasper-el.jar libtcnative-2.la tomcat-api.jar tomcat-i18n-ja.jar tomcat-websocket.jar
catalina-storeconfig.jar jasper.jar libtcnative-2.so tomcat-coyote.jar tomcat-jdbc.jar websocket-api.jar
(另外,我已经更新了 LD_LIBRARY_PATH 以包含 setenv.sh 中的 lib 文件夹)
关于可能出什么问题有什么想法吗?
我尝试按照 this 指南安装 Tomcat 的本机库,我希望这能解决我的问题,但事实并非如此。
对于任何可能遇到同样问题的人,我设法通过重新安装一堆东西来解决这个问题。已经有一段时间了,但如果我没记错的话,我重新安装了 TomCat 本身、tomcat-native 库和 openSSL。我不知道是哪一个动作造成的,但后来它突然起作用了。