【发布时间】:2011-07-12 14:14:35
【问题描述】:
好的
所以我前一阵子安装了 Apache httpd,最近又回来尝试设置 SSL 并让它为几个不同的 tomcat 服务器提供服务。
目前,我有两个完全独立的 Tomcat 实例,它们服务于稍微不同的版本(一个用于开发,一个用于演示)我的网络应用程序到两个不同的端口:
example.com:8081example.com:8082
我已经成功(早在 1 月)使用 mod_jk 让 httpd 为 http://www.example.com:8090/dev 和 http://www.example.com:8090/demo 提供相同的 Tomcat 实例(8090 因为我通过 Jetty 在 8080 上运行了另一个应用程序这个阶段)在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 目录。
谁能告诉我如何为我的安装位置httpd 正确安装mod_ssl,以便我可以克服这个错误?
【问题讨论】:
标签: apache ssl httpd.conf webmin virtualmin