在 Debian 上,Apache2 本身不负责“加密数据内容”,通常所说的“加密”主要指 HTTPS(TLS/SSL)加密传输。下面按常见需求给你几种做法。
sudo apt update
sudo apt install apache2
sudo a2enmod ssl
sudo systemctl restart apache2
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com
自动配置 HTTPS 并定期续期。
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/apache.key \
-out /etc/ssl/certs/apache.crt
编辑:
sudo nano /etc/apache2/sites-available/default-ssl.conf
关键配置:
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key
</VirtualHost>
启用站点:
sudo a2ensite default-ssl
sudo systemctl reload apache2
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
SetEnv DB_PASSWORD "encrypted_or_secret"
openssl 加密文件openssl enc -aes-256-cbc -salt -in config.conf -out config.conf.enc
解密:
openssl enc -d -aes-256-cbc -in config.conf.enc -out config.conf
如果是为了 防止服务器被物理窃取:
Apache 本身不处理:
| 需求 | 方法 |
|---|---|
| 传输加密 | HTTPS / Let’s Encrypt |
| 配置文件加密 | OpenSSL |
| 磁盘加密 | LUKS |
| 数据加密 | 应用层实现 |
如果你能说明是 哪种“加密”(HTTPS?密码?磁盘?代码?),我可以给你更精确的配置示例。