在Linux服务器上使用Apache搭建网站时,配置HTTPS可以让客户端与服务器之间的通信内容加密传输,避免被窃听或篡改。实现HTTPS的核心是为Apache启用SSL模块并正确绑定证书文件。

一、准备SSL证书
你可以从证书颁发机构申请免费或付费证书,也可以用OpenSSL生成自签名证书用于测试。生成自签名证书的命令如下:
# 生成私钥和自签名证书,有效期365天 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
二、安装并启用mod_ssl
在基于Debian或Ubuntu的系统中,需要安装Apache的SSL模块;在CentOS等系统中通常已集成。安装命令如下:
# Ubuntu/Debian sudo apt update sudo apt install apache2 mod_ssl sudo a2enmod ssl
三、配置虚拟主机
编辑Apache的虚拟主机配置文件,添加监听443端口并指定证书路径。下面给出一个简化的配置示例:
<VirtualHost *:443>
ServerName www.ippipp.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意配置中的<VirtualHost>标签必须正确闭合,且证书文件路径要真实存在。
四、重启并验证
修改配置后,先检查语法再重启服务:
# 检查配置 apachectl configtest # 重启Apache sudo systemctl restart apache2
如果防火墙开启,别忘了放行443端口:
sudo ufw allow 443/tcp
五、常见问题
- 浏览器提示证书不受信任:自签名证书需手动信任,正式环境应使用受信任CA签发的证书。
- 无法访问443端口:检查云服务器安全组与系统防火墙是否放开。
- 配置文件报错:运行configtest查看具体行号并修正。
启用HTTPS后,建议将80端口的HTTP请求通过重写规则跳转到HTTPS,保证全站加密。