温馨提示×

Ubuntu Apache2怎样配SSL

小樊
41
2026-09-23 12:18:28
栏目: 云计算

在 Ubuntu 上给 Apache2 配置 SSL(HTTPS),通常有两种常见方式:


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

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 换成你的域名

Certbot 会:

  • 自动申请证书
  • 修改 Apache 配置
  • 开启 443 端口
  • 设置 HTTP 跳转 HTTPS

3. 测试自动续期

sudo certbot renew --dry-run

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

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 reload apache2

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

/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

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

  • 云服务器 / 本地 / Docker
  • 域名是否已解析
  • 是否用 Nginx 反代

我可以给你更精确的步骤。

0