温馨提示×

centos上apache2如何加密

小樊
43
2026-09-18 03:20:19
栏目: 网络安全

在 CentOS 上,通常使用的是 Apache HTTP Server(httpd),而不是 Ubuntu 里的 apache2 包名。下面我分几种常见“加密”场景来说明,你可以按需选择。


一、使用 HTTPS 加密(最常用)

1. 安装 Apache

sudo yum install httpd mod_ssl -y
sudo systemctl enable httpd
sudo systemctl start httpd

mod_ssl 是 Apache 的 SSL 模块


2. 获取 SSL 证书

方式一:使用 Let’s Encrypt(免费)

sudo yum install certbot python3-certbot-apache -y
sudo certbot --apache

按提示输入域名即可自动配置 HTTPS。


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

sudo mkdir /etc/httpd/ssl
sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/httpd/ssl/apache.key \
  -out /etc/httpd/ssl/apache.crt

3. 配置 HTTPS 虚拟主机

编辑或新建:

sudo vi /etc/httpd/conf.d/ssl.conf

示例:

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

    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/apache.crt
    SSLCertificateKeyFile /etc/httpd/ssl/apache.key
</VirtualHost>
sudo systemctl restart httpd

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

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

二、.htaccess 密码加密(访问保护)

1. 创建密码文件

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

2. 配置目录保护

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

三、配置文件/传输内容加密(高级)

  • 数据库密码:不要明文写在代码里
  • 通信加密:只使用 HTTPS
  • 敏感文件:
    chmod 600 /etc/httpd/conf/*.conf
    

四、防火墙与端口

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

如果你能说明:

  • 是 网站 HTTPS 加密
  • 还是 目录/接口访问加密
  • 还是 Apache 配置文件加密

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

0 踩