温馨提示×

apache2怎样配置ssl

小樊
48
2026-10-12 07:06:22
栏目: 云计算

下面以 Debian / Ubuntu 上的 Apache2 为例,说明如何配置 SSL(HTTPS)。


一、准备工作

1. 安装 Apache(如果还没装)

sudo apt update
sudo apt install apache2

2. 安装 SSL 模块(通常默认已启用)

sudo apt install openssl

二、获取 SSL 证书

方式一:使用 Let’s Encrypt(推荐,免费)

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

按提示输入域名、邮箱即可自动配置 SSL。


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

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/apache-selfsigned.key \
  -out /etc/ssl/certs/apache-selfsigned.crt

三、配置 Apache SSL 站点

1. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

2. 创建 SSL 虚拟主机配置

sudo nano /etc/apache2/sites-available/example.com-ssl.conf

示例配置(自签名):

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

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

如果是 Let’s Encrypt:

SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

3. 启用站点

sudo a2ensite example.com-ssl.conf
sudo systemctl reload apache2

四、HTTP 自动跳转 HTTPS(可选)

编辑 HTTP 配置:

sudo nano /etc/apache2/sites-available/000-default.conf

添加:

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

然后:

sudo systemctl reload apache2

五、防火墙(如有)

sudo ufw allow 443
sudo ufw allow 80

六、验证

浏览器访问:

https://example.com

查看证书是否生效。


如果你用的是 CentOS / Rocky / Alma 或 Docker Apache,或想配置 多域名 / 反向代理 SSL,可以告诉我,我可以给你对应示例。

0 踩