温馨提示×

centos apache2怎样加密

小樊
40
2026-09-06 02:57:32
栏目: 网络安全

CentOS 上,Web 服务器一般是 Apache HTTP Server(httpd),而不是 apache2apache2 是 Debian/Ubuntu 的叫法)。下面分几种常见的“加密”场景说明。


一、用 HTTPS 加密网站(最常用)

1. 安装 Apache

yum install httpd -y
systemctl enable httpd
systemctl start httpd

2. 安装 SSL 模块

yum install mod_ssl openssl -y

3. 生成或获取证书

方式一:自签名证书(测试用)

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/pki/tls/private/server.key \
  -out /etc/pki/tls/certs/server.crt

方式二:Let’s Encrypt(推荐,免费)

yum install certbot python2-certbot-apache -y
certbot --apache -d example.com

4. 配置 SSL(mod_ssl 默认配置即可)

配置文件位置:

/etc/httpd/conf.d/ssl.conf

关键配置:

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

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/server.crt
    SSLCertificateKeyFile /etc/pki/tls/private/server.key
</VirtualHost>

重启 Apache:

systemctl restart httpd

5. 强制 HTTP 跳转到 HTTPS(可选)

<VirtualHost *:80>
    ServerName example.com
    RewriteEngine On
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</VirtualHost>

二、用 .htaccess 加密目录(访问控制)

1. 创建密码文件

htpasswd -c /etc/httpd/.htpasswd user1

2. 配置目录

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

需要确保 AllowOverride AuthConfig 已开启


三、数据库连接加密(如 MySQL)

  • 使用 SSL 连接 MySQL
  • PHP 示例:
mysqli_real_connect($conn, $host, $user, $pass, $db, 3306, NULL, MYSQLI_CLIENT_SSL);

四、文件传输加密

  • 禁止 FTP,使用 SFTP(基于 SSH)
systemctl enable sshd

总结

需求 方案
网站加密 HTTPS + SSL
目录加密 .htaccess + htpasswd
免费证书 Let’s Encrypt
内部测试 自签名证书

如果你说的是 “apache2 某个具体功能怎么加密”(如密码、session、接口),可以告诉我具体场景。

0