好的
我一段时间前安装了Apache httpd
,最近回来尝试设置SSL并将其用于多个不同的Tomcat服务器。
目前,我有两个完全独立的Tomcat实例,分别为开发版和演示版,它们向两个不同的端口提供我的Web应用程序:
example.com:8081
example.com:8082
我已经成功地(在1月份)使用了mod_jk
,通过以下代码在httpd.conf
中实现将httpd
服务这些相同的Tomcat实例到http://www.example.com:8090/dev
和http://www.example.com:8090/demo
(8090是因为此时我还在8080上通过Jetty运行另一个应用程序):
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
<VirtualHost *:8090>
JkMount /devd* tomcatDev
JkMount /demo* tomcatDemo
</VirtualHost>
我不想启用SSL。
我已经将以下内容添加到httpd.conf
:
Listen 443
<VirtualHost _default_:443>
JkMount /dev* tomcatDev
JkMount /demo* tomcatDemo
SSLEngine on
SSLCertificateFile "/opt/httpd/conf/localhost.crt"
SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
但是,当我尝试使用apachectl restart
重新启动Apache时(是的,在关闭了我之前提到的其他应用程序,以免它玩弄https连接后),我不断收到以下错误:
无效命令“SSLEngine”,可能拼写错误或由未包含在服务器配置中的模块定义。httpd未运行,正在尝试启动
我在httpd/modules
目录中查找过了,确实没有mod_ssl
,只有mod_jk.so
和httpd.exp
。
我尝试使用yum安装mod_ssl
,它说已经安装。事实上,我可以在/usr/lib/httpd/modules
中找到mod_ssl.so
,但这不是我安装httpd
的路径,它是/opt/httpd
,而且实际上/usr/lib/httpd
除了modules
目录外什么都没有。
有人可以告诉我如何正确安装mod_ssl
以适合我已安装的httpd
位置,以便我可以解决此错误吗?