在 CentOS 上,Web 服务器一般是 Apache HTTP Server(httpd),而不是 apache2(apache2 是 Debian/Ubuntu 的叫法)。下面分几种常见的“加密”场景说明。
yum install httpd -y
systemctl enable httpd
systemctl start httpd
yum install mod_ssl openssl -y
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/pki/tls/private/server.key \
-out /etc/pki/tls/certs/server.crt
yum install certbot python2-certbot-apache -y
certbot --apache -d example.com
配置文件位置:
/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
<VirtualHost *:80>
ServerName example.com
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</VirtualHost>
htpasswd -c /etc/httpd/.htpasswd user1
<Directory "/var/www/html/secret">
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
需要确保
AllowOverride AuthConfig已开启
mysqli_real_connect($conn, $host, $user, $pass, $db, 3306, NULL, MYSQLI_CLIENT_SSL);
systemctl enable sshd
| 需求 | 方案 |
|---|---|
| 网站加密 | HTTPS + SSL |
| 目录加密 | .htaccess + htpasswd |
| 免费证书 | Let’s Encrypt |
| 内部测试 | 自签名证书 |
如果你说的是 “apache2 某个具体功能怎么加密”(如密码、session、接口),可以告诉我具体场景。