温馨提示×

ubuntu apache怎样配置https

小樊
36
2026-09-23 11:48:29
栏目: 智能运维

在 Ubuntu 上通过 Apache 配置 HTTPS,通常分为以下几种常见场景。下面以 Ubuntu 20.04 / 22.04 + Apache2 为例说明。


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

1. 安装 Apache 和 Certbot

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

2. 确保域名已解析

确保你的域名(如 example.com)已 A 记录指向该服务器 IP。

3. 配置 Apache 虚拟主机(可选但建议)

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

示例:

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

启用站点:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

4. 申请并自动配置 HTTPS

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

按提示选择:

  • 是否重定向 HTTP → HTTPS(建议选 2)

5. 验证自动续期

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. 配置 Apache SSL

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

修改关键项:

SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile   /etc/ssl/private/apache-selfsigned.key

3. 启用 SSL 模块和站点

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

访问:

https://服务器IP

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


三、手动配置已有证书(企业证书)

假设你已有:

  • 证书:/etc/ssl/certs/example.crt
  • 私钥:/etc/ssl/private/example.key
sudo nano /etc/apache2/sites-available/example-ssl.conf
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>

启用:

sudo a2enmod ssl
sudo a2ensite example-ssl
sudo systemctl restart apache2

四、常见问题

1. 防火墙未放行 443

sudo ufw allow 443/tcp

2. 强制 HTTP 跳转 HTTPS

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

3. 查看 Apache 状态

sudo systemctl status apache2

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

  • Ubuntu 版本
  • 是否已有域名 / 证书
  • 是生产环境还是测试环境

我可以给你一份可直接用的配置文件。

0 踩