我在 CentOS 上运行 Tomcat 8.0.23(我知道,应该升级),我需要设置带有身份验证和 SSL 的 JMX。我能够从我的 Windows 机器通过 SSL 隧道使用 SSL 和密码进行连接。但是当我输入与 SSL 相关的 JVM 参数时,tomcat 不会启动。我查看了许多文档,但在我的设置中没有看到错误。
export JMS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$RMI_PORT -Dcom.sun.management.jmxremote.rmi.port=$RMI_PORT -Dcom.sun.management.jmxremote.local.only=false -D java.rmi.server.hostname=localhost"
export JMS_NO_AUTH="-Dcom.sun.management.jmxremote.authenticate=false"
export CONFIG_PATH="/opt/tomcat/default/conf"
export JMS_AUTH="-Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=$CONFIG_PATH/jmxremote.access -Dcom.sun.management.jmxremote.password.file=$CONFIG_PATH/jmxremote.password"
export JMS_SSL_OFF="-Dcom.sun.management.jmxremote.ssl=false"
export JMS_SSL_ON="-Dcom.sun.management.jmxremote.ssl=true -Djavax.net.ssl.keyStore=$CONFIG_PATH/jmx_ssl.jks -Djavax.net.ssl.keyStorePassword=StupidPassword"
export CATALINA_OPTS="$JMS $JMS_AUTH $JMS_SSL_ON"
tomcat日志:
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1616; nested exception is:
java.net.BindException: Address already in use
当我切换到无 SSL 时,Tomcat 通常会启动,并且我可以连接
export CATALINA_OPTS="$JMS $JMS_AUTH $JMS_SSL_OFF"
知道问题出在哪里吗?
答案1
好像您在此处定义的端口:
-Dcom.sun.management.jmxremote.port=$RMI_PORT
正在使用。因此重新定义此变量RMI_PORT
以指向其他端口。或者检查并停止(如果不需要)监听端口 1616 的服务