彻底卸载Apache的mod_ssl需先停用主服务,再逐层清除包、配置、证书、模块文件及残留依赖。具体包括:停止服务;purge或remove主包与mod_ssl;手动删除ssl.conf、证书目录、虚拟主机SSL配置;搜索并移除LoadModule ssl行及mod_ssl.so文件;清理缓存与自动依赖;验证443端口未被占用。
要完全卸载 apache 的 mod_ssl 并清理所有残留,不能只卸载模块本身——它通常随 apache2 或 httpd 主包一起安装,且配置、证书、依赖和运行时文件会分散在多个位置。关键在于“先卸载主体服务,再逐层清除关联项”,否则容易遗漏配置或权限残留。
停止并卸载主服务与 mod_ssl 包
mod_ssl 不是独立运行的服务,而是 Apache 的一个动态模块。必须先停用整个 Web 服务,再统一清除:
- Ubuntu/Debian(含 deepin):
sudo systemctl stop apache2sudo apt-get purge apache2 apache2-utils apache2-bin apache2-data libapache2-mod-ssl - CentOS/RHEL:
sudo systemctl stop httpdsudo yum remove httpd mod_ssl(或dnf remove httpd mod_ssl)
手动删除残留配置与证书文件
即使使用 purge 或 remove --nodeps,Apache 的 SSL 配置目录、自签名证书、密钥和虚拟主机定义仍常被保留:
- Debian/Ubuntu/deepin 系统:
sudo rm -rf /etc/apache2/mods-enabled/ssl.conf /etc/apache2/mods-available/ssl.loadsudo rm -rf /etc/ssl/private/ /etc/ssl/certs/(若仅用于 Apache,可清空;如有其他服务共用,请先确认)sudo rm -f /etc/apache2/sites-enabled/*-ssl /etc/apache2/sites-available/*-ssl - CentOS/RHEL:
sudo rm -f /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.modules.d/00-ssl.confsudo rm -rf /etc/pki/tls/private/ /etc/pki/tls/certs/(同上,注意共享风险)
检查并清除残留模块加载与运行痕迹
有些系统会在全局配置中硬编码 LoadModule ssl_module,或留下已失效的 .so 文件;还需确认无残留进程或监听端口:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 搜索所有含 ssl 的模块加载行:
grep -r "LoadModule.*ssl" /etc/apache2/ /etc/httpd/ 2>/dev/null
找到后直接注释或删除对应行 - 检查是否仍有
mod_ssl.so文件残留:find /usr /lib -name "mod_ssl.so" -o -name "ssl_module.so" 2>/dev/null | xargs -r sudo rm -f - 验证 443 端口未被占用:
sudo ss -tlnp | grep ':443'—— 若有输出,说明某进程仍在监听,需进一步排查(如残留 httpd 进程或 nginx 占用)
清理缓存与自动依赖
卸载后可能遗留未被标记为“自动安装”的依赖包(如 openssl 本身不删,但 libaprutil1-dbd-sqlite3 等间接依赖可清理):
- Debian/Ubuntu/deepin:
sudo apt-get autoremove --purgesudo apt-get clean && sudo apt-get autoclean - CentOS/RHEL:
sudo yum autoremove(或dnf autoremove)
不复杂但容易忽略

















