温馨提示×

apache2怎样配置ssl证书

小樊
44
2026-10-05 03:29:01
栏目: 云计算

下面以 Ubuntu/Debian 上的 Apache2 为例,说明如何配置 SSL 证书(以免费 Let’s Encrypt 和自签名证书两种常见场景为例)。


一、使用 Let’s Encrypt 免费 SSL(推荐)

1. 安装 Certbot

sudo apt update
sudo apt install certbot python3-certbot-apache -y

2. 申请并自动配置 SSL

sudo certbot --apache -d example.com -d www.example.com
  • example.com 换成你的域名
  • 按提示选择是否强制 HTTPS

3. 自动续期测试

sudo certbot renew --dry-run

✅ 配置完成后:

  • 证书路径通常在:
    • /etc/letsencrypt/live/example.com/
  • Apache 会自动启用 000-default-le-ssl.conf

二、使用自签名证书(测试环境)

1. 生成私钥和证书

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

2. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

3. 配置虚拟主机

编辑或新建配置文件:

sudo nano /etc/apache2/sites-available/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
    </Directory>
</VirtualHost>

4. 启用站点

sudo a2ensite ssl.conf
sudo systemctl restart apache2

三、HTTP 强制跳转 HTTPS(可选)

在 000-default.conf 或站点配置中:

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

四、验证是否成功

  • 浏览器访问:https://你的域名
  • 或命令检查:
curl -I https://example.com

如果你用的是 CentOS / Rocky / AlmaLinux 或 已有商业 SSL 证书(CRT + KEY + CA),可以告诉我,我可以给你对应配置示例。

0 踩