树莓派/Debian “无法定位软件包 mod_ssl” 问题解决方案
一、前言
对于使用 OpenSSL 来加载第三方 SSL 证书来实现 HTTPS 安全连接实现的方法来说,CentOS、Ubuntu 等与 Debian 的实现方法并不一样。
-
对 CentOS、Ubuntu 等 Linux 发行版来说,使用 OpenSSL 来加载第三方 SSL 证书来实现 HTTPS 安全连接,可以参考 ownCloud 社区的文档:
-
问题描述:
yogile@debyogile:~$ SSLOpenSSLConfCmd DHParameters /etc/apache2/dh4096.pem sudo: SSLOpenSSLConfCmd:找不到命令
或
yogile@debyogile:~$ sudo apt install mod_ssl 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 E: 无法定位软件包 mod_ssl
二、问题回答
-
如前言所述:对于使用 OpenSSL 来加载第三方 SSL 证书来实现 HTTPS 安全连接实现的方法来说,CentOS、Ubuntu 等与 Debian 的实现方法并不一样,也在于对于 Apache 模块的管理两方不一样。
-
在 CentOS、Ubuntu 等之中,
SSLOpenSSLConfCmd
命令依赖于 Apache 的模块 mod_ssl 。但是对于 Apache 模块,管理其模块是通过 yum 实现的,而不是 Debian 的 apt 。
三、解决方案
通过以下命令加载 ssl 模块:
sudo a2enmod ssl
再通过重启 Apache 启用 ssl 模块:
sudo /etc/init.d/apache2 restart
或
sudo service apache2 restart
Debian 下 Apache 其实已经准备好了类似 mod_ssl 的模块:ssl 。
在 /etc/apache2/mods-available/
文件夹下,有着非常多的 Apache 模块,只是没有加载启用。而已经启用的模块软链接到 /etc/apache2/mods-enabled/
文件夹下。
这时,输入 ls /etc/apache2/mods-enabled/
就可以看到 ssl 模块被加载:
yogile@debyogile~$ ls /etc/apache2/mods-enabled
access_compat.load autoindex.conf mime.load setenvif.conf
alias.conf autoindex.load mpm_prefork.conf setenvif.load
alias.load deflate.conf mpm_prefork.load socache_shmcb.load
auth_basic.load deflate.load negotiation.conf ssl.conf
authn_core.load dir.conf negotiation.load ssl.load
authn_file.load dir.load php7.3.conf status.conf
authz_core.load env.load php7.3.load status.load
authz_host.load filter.load reqtimeout.conf
authz_user.load mime.conf reqtimeout.load