tomcat ssl 怎么配置pem 和key文件

2025-05-19 22:40:21
推荐回答(1个)
回答(1):

下载APR依赖: APR 1.2+ development headers (libapr1-dev package)
下载OpenSSL依赖:OpenSSL 0.9.7+ development headers (libssl-dev package)
准备依赖包
解压缩tomcat_home/bin/tomcat-native.tar.gz
进入目录:tomcat-native-1.1.20-src/jni/native 详细安装见此目录下的BUILDING文件
执行 export JAVA_HOME=/prog/java/jdk 设置JDK
执行:./configure --with-apr=/usr/bin --with-ssl=/usr/bin
执行:make
执行:sudo make install -->安装到/usr/local/apr/lib
执行:ln -s /usr/local/apr/lib/libtcnative-1.so $JAVA_HOME/jre/lib/amd64/
重新启动tomcat看到:
Sep 3, 2010 9:56:17 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 9:56:18 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed to initialize the SSLEngine.
Sep 3, 2010 9:56:18 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 9:56:18 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 9:56:18 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 840 ms

配置SSL

非APR的SSL配置步骤
创建keystore:
jdk/bin/keytool -genkey -keystore tomcat.keystore -alias tomcat -keyalg RSA

把tomcat.keystore放入${user.home}目录中,就是你的用户目录,当然你可以放入其他目录中
修改tomcat的server.xml,增加Connector:

Xml代码
APR环境的SSL配置(ssl不使用apr):
URIEncoding="UTF-8"
keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
maxThreads="20"
/>
如果还是按照上面的#非APR的SSL配置步骤进行ssl配置,那么需要这么做:
在Connector中配置protocol=org.apache.coyote.http11.Http11NioProtocol
protocol="org.apache.coyote.http11.Http11NioProtocol"
URIEncoding="UTF-8"
keystoreFile="${user.home}/tomcat.keystore" keystorePass="cms4g-proxy-PaSsWoRd"
maxThreads="20"
/>

但启动时会提示错误:Failed to initialize the SSLEngine.
Sep 3, 2010 10:49:42 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 10:49:43 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed to initialize the SSLEngine.
Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 10:49:43 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 3, 2010 10:49:43 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9145
Sep 3, 2010 10:49:43 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 10:49:43 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1162 ms

虽然提示信息:Failed to initialize the SSLEngine.但ssl依然可以正常运行,要抑制此信息只要修改server.xml配置apr的sslengine=off即可,如


启动信息
Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Sep 3, 2010 10:51:53 PM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8782
Sep 3, 2010 10:51:54 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 3, 2010 10:51:54 PM org.apache.coyote.http11.Http11NioProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-9145
Sep 3, 2010 10:51:54 PM org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8711
Sep 3, 2010 10:51:54 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1081 ms