apache默认只监听80端口,要支持https必须启用mod_ssl模块、配置有效ssl证书、设置并放行443端口防火墙。
apache 默认只监听 80 端口(http),要支持 https,必须启用 ssl/tls 加密并监听 443 端口。核心是加载 mod_ssl 模块、配置有效证书、开启虚拟主机监听 443,并确保防火墙放行。
启用 mod_ssl 模块
Apache 需通过 mod_ssl 提供 TLS 支持。不同系统启用方式略有差异:
- Debian/Ubuntu:运行
sudo a2enmod ssl,自动启用模块并创建符号链接 - RHEL/CentOS:安装包通常已含模块,确认
/etc/httpd/conf.modules.d/00-ssl.conf存在且未被注释;如缺失,手动添加LoadModule ssl_module modules/mod_ssl.so - Windows:检查
httpd.conf中LoadModule ssl_module modules/mod_ssl.so和Include conf/extra/httpd-ssl.conf两行是否取消注释
准备 SSL 证书与私钥
证书是 HTTPS 的信任基础。生产环境推荐使用 Let’s Encrypt 免费证书;测试可临时用自签名证书:
-
Let’s Encrypt(推荐):用
certbot自动获取并续期,命令如sudo certbot --apache -d example.com,证书默认存于/etc/letsencrypt/live/example.com/ -
自签名证书(仅测试):执行三步生成(注意 CommonName 必须与域名一致):
openssl genrsa -out server.key 2048openssl req -new -key server.key -out server.csropenssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
配置 HTTPS 虚拟主机
新建或编辑一个 *:443 的 <virtualhost></virtualhost> 块,关键项不能遗漏:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 监听端口:必须写
<virtualhost></virtualhost>(不是 80) - 启用加密:
SSLEngine on - 指定证书路径:
SSLCertificateFile /path/to/server.crt - 指定私钥路径:
SSLCertificateKeyFile /path/to/server.key - 若用 Let’s Encrypt 的完整链,还需加:
SSLCertificateChainFile /path/to/chain.pem(新版 certbot 已合并进 fullchain.pem,可用SSLCertificateFile直接指向fullchain.pem)
加固与验证
基础能通只是起点,还需安全加固并确认生效:
-
协议与密码套件:禁用老旧协议,在配置中加入:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 -
防火墙放行:运行
sudo firewall-cmd --add-port=443/tcp --permanent && sudo firewall-cmd --reload(CentOS/RHEL)或sudo ufw allow 443(Ubuntu) -
语法检查与重启:执行
sudo apachectl configtest确认无报错,再sudo systemctl restart apache2(或httpd) -
强制跳转 HTTPS:在 HTTP 虚拟主机(
*:80)中添加重定向:Redirect permanent / https://example.com/
完成以上步骤后,访问 https://your-domain.com 即可看到锁形图标。证书有效性可通过浏览器点击地址栏锁图标查看,也可用 openssl s_client -connect your-domain.com:443 -servername your-domain.com 手动验证握手过程。










