Apache服务器启用HTTPS的核心是申请合法SSL证书并正确配置,具体分五步:准备环境(域名解析、开启443端口、确认mod_ssl)、生成CSR或用Certbot申请、下载整理证书文件(域名.crt/.key/chain.crt)、配置443虚拟主机并增强安全参数、重启服务后验证并可选配置HTTP自动跳转。

Apache 服务器启用 HTTPS,核心是申请合法 SSL 证书并正确安装配置。整个流程不复杂,但每一步都影响最终能否正常访问、是否被浏览器信任。
一、申请证书前的准备
确保域名已解析到服务器 IP,且能通过 HTTP(80 端口)正常访问。这是 CA 验证域名控制权的前提。同时确认 Apache 已安装并运行,版本建议 ≥2.4.8(支持 SNI,方便多域名共用 443 端口)。
- 检查 mod_ssl 是否可用:
apachectl -M | grep ssl,无输出需先安装(CentOS:yum install mod_ssl;Ubuntu:apt install libapache2-mod-ssl) - 开放系统防火墙及云服务商安全组中的 443 端口
- 推荐使用 Let’s Encrypt(免费、自动续期)或阿里云/腾讯云等平台的 DV 免费证书,适合大多数网站
二、生成 CSR 并提交申请
CSR(证书签名请求)包含你的公钥和组织信息,是向 CA 申请证书的“身份证”。可由服务器本地生成,也可由云平台代为生成。
- 手动创建(推荐用于自控环境):
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
按提示填写国家、省份、组织名、域名(Common Name 必须与要保护的域名完全一致,如 www.example.com 或 example.com) - 若使用 Let’s Encrypt,直接用 Certbot 工具一键申请:
certbot --apache -d example.com -d www.example.com
它会自动完成验证、申请、安装全过程
三、下载并整理证书文件
证书签发后(通常几分钟),从 CA 控制台下载 Apache 版本证书包。解压后你会看到至少三个关键文件:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 域名.crt(或 server.crt):你的服务器证书
- root_bundle.crt(或 ca-bundle.crt / chain.crt):中间证书链,用于构建信任链
- 域名.key(或 server.key):私钥文件,必须严格保密,权限设为 600
建议统一存放路径,例如:/etc/ssl/certs/example.com/,避免路径含中文或空格。
四、配置 Apache 启用 HTTPS
修改虚拟主机配置,指向证书路径,并启用 SSL 引擎。不要直接改主配置文件,推荐在 /etc/httpd/conf.d/(CentOS)或 /etc/apache2/sites-available/(Ubuntu)下新建或编辑 SSL 配置文件。
- 确保已加载 SSL 模块:
LoadModule ssl_module modules/mod_ssl.so - 添加标准 443 虚拟主机块:
<VirtualHost *:443><br> ServerName example.com<br> DocumentRoot /var/www/html<br> SSLEngine on<br> SSLCertificateFile /etc/ssl/certs/example.com/example.com.crt<br> SSLCertificateKeyFile /etc/ssl/certs/example.com/example.com.key<br> SSLCertificateChainFile /etc/ssl/certs/example.com/root_bundle.crt<br> </VirtualHost> - 增强安全性(强烈建议加入):
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1<br> SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384<br> SSLHonorCipherOrder on
五、重启服务并验证
保存配置后,先语法检查:apachectl configtest(或 apache2ctl configtest),无报错再重启:systemctl restart httpd(CentOS)或 systemctl restart apache2(Ubuntu)。
- 用浏览器访问 https://example.com,地址栏应显示锁图标,点击可查看证书详情
- 用在线工具(如 SSL Labs 的 SSL Test)检测配置强度与兼容性
- 设置 HTTP 自动跳转 HTTPS(可选但推荐):
在 80 端口虚拟主机中添加:
RewriteEngine On<br> RewriteCond %{HTTPS} off<br> RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

















