樹莓派/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