在 CentOS 上,Apache 通常叫 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 + httpd 为例,说明如何配置 SSL(HTTPS)。
# CentOS 7
yum install httpd mod_ssl -y
# CentOS 8 / Stream
dnf install httpd mod_ssl -y
安装后:
/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/ssl.confyum install certbot python3-certbot-apache -y
certbot --apache -d example.com -d www.example.com
证书会自动配置并续期。
假设证书文件:
/etc/ssl/certs/example.com.crt
/etc/ssl/private/example.com.key
编辑或新建:
vi /etc/httpd/conf.d/ssl.conf
示例配置:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
# 如果是 CA 证书链
# SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
systemctl start httpd
systemctl enable httpd
httpd -t
浏览器访问:
https://example.com
如果你用的是 CentOS 9 / Rocky / Alma 或 Nginx 混用,或 多个域名 SSL,可以告诉我,我可以给你更具体的配置。