温馨提示×

ubuntu apache怎样加密

小樊
38
2026-10-08 01:39:22
栏目: 网络安全

在 Ubuntu 上,Apache 的“加密”通常指两种场景:

  1. HTTPS 加密(最常用):用 SSL/TLS 加密网站流量
  2. 目录/文件加密:对网站目录做访问密码保护

下面分别说明。


一、Apache 启用 HTTPS(SSL/TLS 加密)

1️⃣ 安装 Apache SSL 模块

sudo apt update
sudo apt install apache2
sudo a2enmod ssl
sudo systemctl restart apache2

2️⃣ 使用 Let’s Encrypt 免费证书(推荐)

安装 Certbot

sudo apt install certbot python3-certbot-apache

申请并自动配置

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

✅ 会自动:

  • 生成证书
  • 配置 Apache
  • 开启 HTTPS
  • 设置自动续期

3️⃣ 手动配置 SSL(自签名证书,测试用)

sudo mkdir /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

编辑虚拟主机:

sudo nano /etc/apache2/sites-available/example.conf
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

启用站点:

sudo a2ensite example.conf
sudo systemctl reload apache2

二、Apache 目录密码加密(Basic Auth)

1️⃣ 安装工具

sudo apt install apache2-utils

2️⃣ 创建密码文件

sudo htpasswd -c /etc/apache2/.htpasswd user1

3️⃣ 配置 Apache 保护目录

sudo nano /etc/apache2/conf-available/protect.conf
<Directory /var/www/html/private>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

启用并重启:

sudo a2enconf protect
sudo systemctl reload apache2

三、加强 HTTPS 安全(可选)

sudo a2enmod headers

在虚拟主机中添加:

Header always set Strict-Transport-Security "max-age=31536000"

并强制 HTTP → HTTPS:

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

四、常见用途对照

需求 方法
网站加密传输 HTTPS / Let’s Encrypt
后台目录防窥 Basic Auth
内部系统安全 HTTPS + 密码
数据静态加密 磁盘加密(LUKS)

如果你能说明:

  • 是 网站加密 还是 目录保护
  • 是否有 域名
  • Ubuntu 版本(20.04 / 22.04 / 24.04)

我可以给你更精确的一步一步配置。

0 踩