最佳答案
好吧
因此,我前一阵子安装了 Apache httpd
,最近又回来尝试安装 SSL,并让它服务于几个不同的 tomcat 服务器。
目前,我有两个完全独立的 Tomcat 实例,它们可以提供略有不同的版本(一个用于开发,一个用于演示) ,我的 web 应用可以提供给两个不同的端口:
example.com:8081
example.com:8082
我已经成功地(回到1月)使用 mod_jk
使得 httpd
为 http://www.example.com:8090/dev
和 http://www.example.com:8090/demo
提供相同的 Tomcat 实例(8090,因为我已经在8080上通过 Jetty 运行了另一个应用程序) ,使用 httpd.conf
中的以下代码:
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
,所以我可以通过这个错误?