Apache默认不带HTTPS能力,mod_ssl是必需扩展模块;需确认加载、配好证书路径、监听443端口并放行防火墙,无需重编译或正式证书,3分钟可建含TLS1.2/1.3的测试环境。
Apache 默认不带 HTTPS 能力,mod_ssl 是启用加密连接的必需模块。它不是独立软件,而是 Apache 的扩展组件,依赖 OpenSSL 实现 TLS 加密。安装和配置的关键在于确认模块已加载、证书路径正确、443 端口监听明确,且防火墙放行——整个过程无需重编译,也不必等待正式证书。
多数 Linux 发行版中,mod_ssl 是独立软件包,不会随 Apache 主程序默认安装。
sudo apt update && sudo apt install apache2 openssl libapache2-mod-ssl,再执行 sudo a2enmod ssl 启用模块sudo yum install mod_ssl openssl 或 sudo dnf install mod_ssl openssl;安装后会自动生成 /etc/httpd/conf.d/ssl.conf 并自动启用sudo apachectl -M | grep ssl(Debian/Ubuntu)或 sudo httpd -M | grep ssl(RHEL/CentOS),输出含 ssl_module (shared) 即表示成功加载生产环境建议使用 CA 签发证书,测试阶段可快速生成带 SAN 的自签名证书,现代浏览器仅提示“证书不受信任”,不会标记为“不安全”。
sudo mkdir -p /etc/ssl/private /etc/ssl/certs
sudo openssl genrsa -out /etc/ssl/private/server.key 4096
sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt -subj "/CN=localhost" -addext "subjectAltName = DNS:localhost,IP:127.0.0.1"
sudo chmod 600 /etc/ssl/private/server.key(私钥严禁全局可读)Apache 不会自动监听 443 端口,也不能复用 HTTP 的 <VirtualHost> 块。必须显式定义一个监听 443 的虚拟主机,并启用 SSL 引擎。
/etc/apache2/sites-available/default-ssl.conf/etc/httpd/conf.d/ssl.conf
SSLEngine onSSLCertificateFile /etc/ssl/certs/server.crtSSLCertificateKeyFile /etc/ssl/private/server.key
Listen 443(若无,请在 /etc/apache2/ports.conf 或 /etc/httpd/conf/httpd.conf 中添加)完成配置后需重启服务,并确认端口与防火墙状态。
sudo systemctl restart apache2sudo systemctl restart httpd
sudo ss -tlnp | grep :443
sudo ufw allow 443sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload
https://localhost 或服务器 IP,应显示连接已加密(地址栏有锁形图标)