在 CentOS 上让 Apache 开启 HTTPS,一般步骤是:安装 mod_ssl → 申请/准备证书 → 配置 SSL 虚拟主机 → 开放防火墙 → 重启 Apache。下面以 CentOS 7/8 + Apache(httpd) 为例说明。
yum install httpd mod_ssl -y
systemctl enable httpd
systemctl start httpd
dnf install httpd mod_ssl -y
systemctl enable httpd
systemctl start httpd
安装后,会自动生成:
/etc/httpd/conf.d/ssl.conf/etc/pki/tls/certs/localhost.crtopenssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/pki/tls/private/server.key \
-out /etc/pki/tls/certs/server.crt
例如从 Let’s Encrypt 获取:
yum install certbot python2-certbot-apache -y
certbot --apache -d www.example.com
或手动放置:
/etc/pki/tls/certs/example.com.crt/etc/pki/tls/private/example.com.key编辑 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/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
# 如果有中间证书
# SSLCertificateChainFile /etc/pki/tls/certs/chain.crt
</VirtualHost>
在网站配置中:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
(若使用 iptables 或云安全组,也需放行 443 端口)
httpd -t
systemctl restart httpd
浏览器访问:
https://你的域名
若使用自签证书会提示不安全,属正常现象。
如果你愿意,我可以:
你现在是 CentOS 几?用的是域名证书还是自签?