温馨提示×

ubuntu apache2怎么配ssl

小樊
35
2026-09-05 06:35:58
栏目: 云计算

下面是在 Ubuntu + Apache2 上配置 SSL(HTTPS) 的常见做法,分两种场景:使用 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

按提示输入:

  • 邮箱
  • 域名(如 example.com
  • 是否跳转 HTTP → HTTPS(建议选 2)

certbot 会自动:

  • 申请证书
  • 修改 Apache 配置
  • 启用 443 端口

3. 测试自动续期

sudo certbot renew --dry-run

✅ 完成,访问 https://你的域名


二、使用自有 SSL 证书(企业/测试)

1. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

2. 放置证书文件

假设:

  • 证书:/etc/ssl/certs/example.com.crt
  • 私钥:/etc/ssl/private/example.com.key

3. 创建/修改虚拟主机

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

示例:

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

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key

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

4. 启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

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

*:80 的虚拟主机中加:

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

或:

sudo a2enmod rewrite

四、常见问题排查

端口未开放

sudo ufw allow 443/tcp

查看 Apache 错误

sudo systemctl status apache2
sudo journalctl -u apache2

测试 SSL

https://www.ssllabs.com/ssltest/


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

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 是否用 Docker
  • 域名或内网 IP

我可以给你精确配置示例

0