温馨提示×

ubuntu apache2配置支持ssl吗

小樊
41
2026-07-06 00:25:09
栏目: 云计算

是的,Ubuntu 上的 Apache2 是支持 SSL 的,而且配置起来很常见、也比较成熟。下面我给你一个从安装到启用的完整流程说明(适用于 Ubuntu 20.04 / 22.04 / 24.04 基本都通用)。


一、确认 Apache2 已安装

sudo apt update
sudo apt install apache2

二、启用 SSL 模块

Apache2 默认已支持 SSL,但需要手动启用模块和站点:

sudo a2enmod ssl
sudo systemctl restart apache2

三、准备 SSL 证书

✅ 方式一:使用 Let’s Encrypt(推荐,免费、自动续期)

适合公网域名

1️⃣ 安装 certbot

sudo apt install certbot python3-certbot-apache

2️⃣ 申请证书并自动配置 Apache

sudo certbot --apache

按提示操作即可,证书会:

  • 自动申请
  • 自动配置 Apache 的 SSL 站点
  • 自动设置 HTTP → HTTPS 跳转
  • 自动续期

这是最简单、最推荐的方式


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

适合内网 / 本地测试

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

四、手动配置 SSL 虚拟主机(如果不是用 certbot)

编辑或新建配置文件:

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
        Require all granted
    </Directory>
</VirtualHost>

启用站点:

sudo a2ensite ssl.conf
sudo systemctl reload apache2

五、HTTP 自动跳转 HTTPS(可选但推荐)

编辑 80 端口站点:

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

添加:

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

六、检查是否成功

浏览器访问:

https://你的域名或IP

或使用:

curl -I https://你的域名

七、常见问题

❓ 443 端口未开放

sudo ufw allow 443/tcp

❓ Apache 启动失败

查看日志:

sudo journalctl -xe
sudo tail -n 50 /var/log/apache2/error.log

一句话总结

Ubuntu + Apache2 完全支持 SSL
生产环境推荐 Let’s Encrypt
测试环境可用自签名证书

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

  • Ubuntu 版本
  • 是否有域名
  • 是否公网服务器

我可以给你完全针对你环境的配置方案

0