Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Apache httpd安装mod_ssl?_Apache_Ssl_Httpd.conf_Webmin_Virtualmin - Fatal编程技术网

如何为Apache httpd安装mod_ssl?

如何为Apache httpd安装mod_ssl?,apache,ssl,httpd.conf,webmin,virtualmin,Apache,Ssl,Httpd.conf,Webmin,Virtualmin,嗯 因此,我不久前安装了Apachehttpd,最近又回来尝试安装SSL,并让它服务于几个不同的tomcat服务器 目前,我有两个完全独立的Tomcat实例,为我的web应用程序提供两个不同的端口,它们的版本略有不同(一个用于开发,一个用于演示): example.com:8081 example.com:8082 我已经成功地(早在一月份)使用mod_jk获得了httpd来为那些相同的Tomcat实例提供http://www.example.com:8090/dev和http://www.

因此,我不久前安装了Apache
httpd
,最近又回来尝试安装SSL,并让它服务于几个不同的tomcat服务器

目前,我有两个完全独立的Tomcat实例,为我的web应用程序提供两个不同的端口,它们的版本略有不同(一个用于开发,一个用于演示):

  • example.com:8081
  • example.com:8082
我已经成功地(早在一月份)使用
mod_jk
获得了
httpd
来为那些相同的Tomcat实例提供
http://www.example.com:8090/dev
http://www.example.com:8090/demo
(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>
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
dir,实际上没有
mod\u ssl
,只有
mod\u jk.so
httpd.exp

我曾尝试使用yum安装
mod_ssl
,它说它已经安装了。实际上,我可以在
/usr/lib/httpd/modules
中找到
mod\u ssl.so
,但这不是我安装
httpd
的路径,它是
/opt/httpd
,实际上
/usr/lib/httpd
只包含
modules
目录


有人能告诉我如何为我的
httpd
安装位置正确安装
mod\u ssl
,以便我能克服此错误吗?

是否有任何其他
LoadModule
命令引用
/usr/lib/httpd/modules
文件夹中的模块?如果是这样,只需将
loadmodulessl\u module/usr/lib/httpd/modules/mod\u ssl.so
添加到conf文件中就可以了


否则,您将需要将
mod_ssl.so
文件复制到其他模块正在从中加载的任何目录中,并在那里引用它。

我发现我需要在Apache中启用ssl模块(如果您不是以root用户身份运行,则显然要使用
sudo
作为前缀命令):

然后重新启动Apache:

/etc/init.d/apache2 restart

有关Apache for Ubuntu/Debian中SSL的更多详细信息。

尝试使用以下命令安装
mod_SSL

yum install mod_ssl
然后使用以下命令重新加载并重新启动Apache服务器:

systemctl reload httpd.service
systemctl restart httpd.service
这应该适用于大多数情况。

我使用了:

sudo yum install mod24_ssl

它在我的Amazon Linux AMI中工作。

我不知道它是否仍然感兴趣,也不知道自从发布该线程以来情况是否发生了变化,但我系统上的
/etc/apache2/apache2.conf
显示:

mods enabled/、conf enabled/和sites enabled中的配置文件/ 目录包含管理模块的特定配置代码段, 全局配置片段或虚拟主机配置, 分别

它们通过将其上的可用配置文件符号链接来激活 相应*-可用/副本。这些应该通过使用我们的 助手a2enmod/a2dismod、a2ensite/a2disconf和a2enconf/a2disconf。看见 有关详细信息,请参阅各自的手册页

在我的系统上,模块安装在/usr/lib/apache2/modules中。
我正在Apache安装中运行Ubuntu20.04.2 LTS。

mod_ssl。因此完全丢失了。原来它与基本安装是分开的,并且位于yum软件包管理器中的包
mod_ssl
下。使用
yum安装mod_ssl
下载,然后它出现在
modules
文件夹中。在编译我自己的apache 2后,我发现mod_ssl.so丢失了。需要从头开始重新编译。@ug_uu谢谢,我确认在安装模块后,它包含了该模块,并添加了一个具有所需配置的
ssl.conf
文件。您使用的是哪个发行版操作系统?@Naga
a2enmod
来自Debian世界。如果您从源代码安装Apache,然后,yum将无法检测到它。相反,它将安装一个重复的(过时的)Apache版本,并将mod_ssl.so放入该Apache的模块文件中。
sudo yum install mod24_ssl