树莓派/Debian “无法定位软件包 mod_ssl” 问题解决方案

树莓派/Debian “无法定位软件包 mod_ssl” 问题解决方案

一、前言

对于使用 OpenSSL 来加载第三方 SSL 证书来实现 HTTPS 安全连接实现的方法来说,CentOS、Ubuntu 等与 Debian 的实现方法并不一样。

  • 对 CentOS、Ubuntu 等 Linux 发行版来说,使用 OpenSSL 来加载第三方 SSL 证书来实现 HTTPS 安全连接,可以参考 ownCloud 社区的文档:

    Configure Apache with Let’s Encrypt

  • 问题描述:

    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
posted @ 2020-03-14 23:21  Yogile  阅读(2103)  评论(0编辑  收藏  举报