温馨提示×

ubuntu apache2怎样开启https

小樊
40
2026-09-08 05:43:18
栏目: 智能运维

在 Ubuntu 上通过 Apache2 开启 HTTPS,通常有以下几种常见方式。下面以 使用 Let’s Encrypt 免费证书(推荐)自签名证书 两种方式说明。


一、使用 Let’s Encrypt 免费 HTTPS(推荐,公网可用)

1. 安装 Apache 和 Certbot

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

2. 确保域名解析正确

  • 你的域名(如 example.com)必须指向服务器公网 IP
  • 80 端口可访问

3. 申请并自动配置 HTTPS

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

按提示操作:

  • 输入邮箱
  • 同意条款
  • 选择是否重定向 HTTP → HTTPS(建议选 2)

4. 验证

浏览器访问:

https://example.com

5. 自动续期

sudo certbot renew --dry-run

(系统已默认配置定时任务)


二、使用自签名证书(内网 / 测试用)

1. 启用 SSL 模块

sudo a2enmod ssl
sudo systemctl restart apache2

2. 生成自签名证书

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)

3. 创建 HTTPS 站点配置

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

4. 启用站点

sudo a2ensite ssl.conf
sudo systemctl restart apache2

5. 访问测试

https://服务器IP

(浏览器会提示不安全,属正常现象)


三、常见问题

防火墙未放行 443

sudo ufw allow 443
sudo ufw allow 80

查看 Apache 错误

sudo systemctl status apache2
sudo journalctl -u apache2

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

  • 云服务器还是本地
  • 是否有 域名
  • Apache 版本(apache2 -v

我可以给你更精确的配置方案。

0