最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Apache 的 HTTPS 虚拟主机端口设置怎么配置
时间:2026-07-10 09:59:57 编辑:袖梨 来源:一聚教程网
配置Apache HTTPS虚拟主机需四步:启用443端口监听并加载ssl、socache_shmcb模块;准备有效SSL证书(如Let’s Encrypt或自签名);编写VirtualHost配置指定证书路径、域名和根目录;启用站点、重定向HTTP至HTTPS并开放防火墙443端口。
配置 Apache 的 HTTPS 虚拟主机,核心是启用 443 端口监听、加载 SSL 模块、提供有效证书,并绑定到指定域名。它不是单纯“改端口”,而是端口 + 协议 + 证书 + 域名四者协同生效。
确认并启用 HTTPS 所需模块与端口
Apache 必须明确知道要监听 443 端口,并支持 SSL/TLS 协议:
- 编辑主配置文件(如 /etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf),确保包含:
Listen 443 - 确认已加载必要模块:
LoadModule ssl_module modules/mod_ssl.soLoadModule socache_shmcb_module modules/mod_socache_shmcb.so(用于会话缓存,避免警告) - 检查是否已启用 SSL 配置入口,例如:
Include /etc/apache2/mods-enabled/ssl.conf或IncludeOptional conf-available/*.conf
准备 SSL 证书文件
HTTPS 必须有证书才能建立加密连接。可选方式包括:
- 使用 Let’s Encrypt 免费证书(推荐):
运行sudo certbot --apache -d example.com -d www.example.com,自动完成申请、部署和配置 - 自签名测试证书(仅限开发):
sudo mkdir -p /etc/apache2/sslsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048-keyout /etc/apache2/ssl/example.com.key-out /etc/apache2/ssl/example.com.crt - 商业证书:将
.crt(公钥)、.key(私钥)、以及可选的.ca-bundle(中间证书)统一存放到安全路径,如 /etc/apache2/ssl/
编写 HTTPS 虚拟主机配置
新建配置文件(如 /etc/apache2/sites-available/example.com-ssl.conf),内容需包含:
- 明确声明监听
*:443,并开启 SSL:<VirtualHost *:443>SSLEngine on - 正确指向证书路径:
SSLCertificateFile /etc/apache2/ssl/example.com.crtSSLCertificateKeyFile /etc/apache2/ssl/example.com.key
如有中间证书,加一行:SSLCertificateChainFile /etc/apache2/ssl/example.com.ca-bundle - 设置域名与网站根目录:
ServerName example.comServerAlias www.example.comDocumentRoot /var/www/example.com/public_html - 赋予目录访问权限:
<Directory /var/www/example.com/public_html>Require all granted</Directory>
启用配置并强制 HTTPS 访问
配置写完后必须显式启用,并建议引导用户走 HTTPS:
- 启用站点(Debian/Ubuntu):
sudo a2ensite example.com-ssl.confsudo a2enmod ssl rewrite - 重载服务:
sudo systemctl reload apache2 - 添加 HTTP → HTTPS 重定向(在对应 HTTP 站点的
<VirtualHost *:80>中加入):RewriteEngine onRewriteCond %{HTTPS} !=onRewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L] - 别忘了放行防火墙的 443 端口:
sudo ufw allow 443/tcp(Ubuntu)或sudo firewall-cmd --add-port=443/tcp --permanent && sudo firewall-cmd --reload(CentOS/RHEL)
相关文章
- 谷歌浏览器怎么查看历史记录 07-10
- Codex 下载与登录全流程分析(Windows macOS Linux) 07-10
- codex 改文件中文乱码的解决方式 07-10
- VSCode中使用TRAE AI插件的步骤方法 07-10
- Claude Code Skill入门与进阶实践指南 07-10
- Windows安装Codex与接入DeepSeek-V4完整教程 07-10