温馨提示×

centos apache2如何开启ssl

小樊
42
2026-09-21 06:13:40
栏目: 云计算

在 CentOS 上,Apache 通常叫 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 + httpd 为例,说明如何开启 SSL。


一、安装 mod_ssl

yum install mod_ssl openssl -y

安装后会自动生成:

  • /etc/httpd/conf.d/ssl.conf
  • 默认证书:/etc/pki/tls/certs/localhost.crt

二、准备 SSL 证书

方式 1:使用自签名证书(测试用)

openssl req -new -x509 -days 365 -nodes \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt

方式 2:使用正式证书(推荐)

将你的:

  • 证书:example.com.crt
  • 私钥:example.com.key
  • 中间证书(可选):ca-bundle.crt

放到:

/etc/pki/tls/certs/
/etc/pki/tls/private/

三、配置 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/ca-bundle.crt

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

四、开放防火墙端口

firewall-cmd --permanent --add-service=https
firewall-cmd --reload

(若关闭了 firewalld 可忽略)


五、启动 / 重启 Apache

systemctl restart httpd
systemctl enable httpd

六、验证

https://你的域名或IP

查看端口:

ss -lntp | grep 443

七、HTTP 强制跳转到 HTTPS(可选)

在 *.conf 中添加:

<VirtualHost *:80>
    ServerName www.example.com
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

如果你用的是 CentOS Stream / Rocky / Alma / CentOS 8,或者使用的是 Nginx + Apache,可以告诉我具体环境,我可以给你更精确的配置。

0 踩