温馨提示×

ubuntu apache2怎样启用ssl

小樊
33
2026-09-20 11:35:13
栏目: 云计算

在 Ubuntu 上用 Apache2 启用 SSL 通常有两种常见方式:
1️⃣ 使用 自签名证书(测试用)
2️⃣ 使用 Let’s Encrypt 免费证书(生产环境推荐)

下面分别说明。


一、基础准备

1. 安装 Apache2

sudo apt update
sudo apt install apache2

2. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

二、方式一:自签名证书(测试环境)

1. 生成证书

sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/apache2/ssl/apache.key \
  -out /etc/apache2/ssl/apache.crt

按提示填写信息(Common Name 填你的域名或 IP)。


2. 配置 Apache 虚拟主机

编辑或新建配置文件:

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

示例内容:

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

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

    <Directory /var/www/html>
        AllowOverride All
    </Directory>
</VirtualHost>

3. 启用站点

sudo a2ensite default-ssl
sudo systemctl reload apache2

访问:

https://你的IP或域名

三、方式二:Let’s Encrypt(推荐,免费)

1. 安装 Certbot

sudo apt install certbot python3-certbot-apache

2. 自动申请并配置 SSL

sudo certbot --apache -d example.com -d www.example.com

Certbot 会:

  • 自动申请证书
  • 修改 Apache 配置
  • 启用 HTTPS

3. 自动续期

sudo certbot renew --dry-run

系统已配置定时任务,一般无需手动操作。


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

编辑 /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    ServerName example.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>

启用 rewrite 模块:

sudo a2enmod rewrite
sudo systemctl restart apache2

五、常见问题排查

✅ 防火墙开放 443:

sudo ufw allow 443/tcp

✅ 查看 Apache 状态:

sudo systemctl status apache2

✅ 查看错误日志:

sudo tail -f /var/log/apache2/error.log

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 是否已有域名
  • 是云服务器还是本地虚拟机

我可以给你更精确的配置示例

0