在 CentOS 上通过 Apache 开启 SSL(HTTPS),一般步骤如下(以 CentOS 7/8 为例,适用于大多数环境):
yum install httpd -y
# 或 CentOS 8
dnf install httpd -y
yum install mod_ssl -y
安装后会自动生成:
/etc/httpd/conf.d/ssl.conf/etc/pki/tls/openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt
将你的证书文件放到:
/etc/pki/tls/certs/yourdomain.crt
/etc/pki/tls/private/yourdomain.key
/etc/pki/tls/certs/yourdomain.ca-bundle(可选)
编辑 SSL 配置文件:
vi /etc/httpd/conf.d/ssl.conf
修改关键配置:
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
</VirtualHost>
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
(若使用 iptables)
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
systemctl start httpd
systemctl enable httpd
在 /etc/httpd/conf/httpd.conf 或站点配置中:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
浏览器访问:
https://你的域名
查看证书是否生效。
✅ 无法启动 Apache
journalctl -xe
httpd -t
✅ SELinux 阻止
setsebool -P httpd_can_network_connect 1
如果你告诉我:
我可以给你更精确的配置示例。