确定
所以我前一段时间安装了Apache httpd
,并且最近回到它尝试设置SSL并让它为几个不同的tomcat服务器提供服务。
目前我有两个完全独立的Tomcat实例,提供略有不同的版本(一个用于开发,一个用于演示)我的网络应用程序到两个不同的端口:
example.com:8081
example.com:8082
我已成功(早在1月)使用mod_jk
让httpd
将这些相同的Tomcat实例提供给http://www.example.com:8090/dev
和http://www.example.com:8090/demo
(8090 cos我有另一个在此阶段通过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
,它已经安装了它。确实,我可以在mod_ssl.so
中找到/usr/lib/httpd/modules
,但这不是我安装httpd
/opt/httpd
的路径,/usr/lib/httpd
实际上modules
只包含mod_ssl
目录。
有人可以告诉我如何正确安装httpd
我安装的{{1}}位置,以便我可以解决此错误吗?
答案 0 :(得分:86)
我发现我需要在Apache中启用SSL模块(如果你没有以root用户身份运行,显然会使用sudo
前缀命令):
a2enmod ssl
然后重启Apache:
/etc/init.d/apache2 restart
Apache for Ubuntu / Debian here中的SSL的更多细节。
答案 1 :(得分:32)
是否有其他LoadModule
命令引用/usr/lib/httpd/modules
文件夹中的模块?如果是这样,您只需将LoadModule ssl_module /usr/lib/httpd/modules/mod_ssl.so
添加到您的配置文件即可。
否则,您需要将mod_ssl.so
文件复制到其他模块的加载目录并在那里引用。
答案 2 :(得分:16)
尝试使用以下命令安装mod_ssl
:
yum install mod_ssl
然后使用以下命令重新加载并重新启动Apache服务器:
systemctl reload httpd.service
systemctl restart httpd.service
这适用于大多数情况。
答案 3 :(得分:1)
我用过:
sudo yum install mod24_ssl
它可以在我的Amazon Linux AMI中使用。
答案 4 :(得分:0)
我不知道它是否仍然令人感兴趣,以及自从该线程发布后情况是否发生了变化,但我系统上的 /etc/apache2/apache2.conf
显示:
mods-enabled/、conf-enabled/ 和 sites-enabled/ 中的配置文件 目录包含管理模块的特定配置片段, 全局配置片段,或虚拟主机配置, 分别。
它们通过符号链接可用的配置文件来激活 相应的 *-available/ 对应项。这些应该通过使用我们的 助手 a2enmod/a2dismod、a2ensite/a2dissite 和 a2enconf/a2disconf。看 其各自的手册页以获取详细信息。
在我的系统上,模块安装在 /usr/lib/apache2/modules 中。 我正在运行 Ubuntu 20.04.2 LTS。