温馨提示×

centos apache2怎么开启ssl

小樊
44
2026-10-17 14:31:33
栏目: 云计算

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


一、安装 mod_ssl

yum install mod_ssl -y
# CentOS 8 可用
# dnf install mod_ssl -y

安装后会生成:

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

二、准备 SSL 证书

1️⃣ 使用自签名证书(测试用)

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

2️⃣ 使用正式证书(推荐)

将你的:

  • xxx.crt
  • xxx.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/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.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或域名

或用命令:

curl -I https://localhost

七、可选:HTTP 跳转 HTTPS

在 httpd.conf 或 ssl.conf 中加:

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

如果你用的是 CentOS Stream / Rocky / Alma / CentOS 6,或已有 Nginx 反向代理,可以告诉我,我可以给你对应配置。

0 踩