温馨提示×

ubuntu apache2怎么加密

小樊
36
2026-10-19 18:40:48
栏目: 网络安全

在 Ubuntu 上用 Apache2 做“加密”,通常指两种场景:

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

下面分别说明。


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

1. 安装 Apache SSL 模块

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

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

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

自动完成:

  • 生成证书
  • 配置 Apache
  • 设置 80 → 443 跳转

测试自动续期:

sudo certbot renew --dry-run

3. 手动配置自签证书(测试用)

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/default-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
</VirtualHost>

启用:

sudo a2ensite default-ssl
sudo systemctl restart apache2

二、Apache 目录加密(账号密码访问)

1. 创建密码文件

sudo apt install apache2-utils
sudo htpasswd -c /etc/apache2/.htpasswd user1

2. 配置目录保护

sudo nano /etc/apache2/conf-available/protect.conf

内容:

<Directory /var/www/html/secret>
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
</Directory>

启用:

sudo a2enconf protect
sudo systemctl restart apache2

三、强制全站 HTTPS(推荐)

sudo a2enmod rewrite

虚拟主机中加入:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

四、安全建议

  • 使用 Let’s Encrypt,不要长期使用自签证书
  • 关闭不用的模块
  • 定期更新系统
sudo apt upgrade

如果你是指 数据库加密 / 磁盘加密 / 特定应用加密,可以告诉我具体场景,我可以给你更精准的方案。

0 踩