在 CentOS 里,Apache 通常叫 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面按最常见的“网站 HTTPS 加密”来说明,如果你指的是目录密码加密或通信内容加密,我后面也补充。
yum install httpd mod_ssl -y
systemctl enable httpd
systemctl start httpd
mod_ssl 提供 HTTPS 支持。
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
Certbot 会自动:
编辑配置文件:
vi /etc/httpd/conf.d/ssl.conf
关键配置:
<VirtualHost *:443>
ServerName www.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 www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
如果你指的是访问某个目录需要密码:
htpasswd -c /etc/httpd/.htpasswd user1
<Directory /var/www/html/secret>
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
systemctl restart httpd
| 需求 | 方法 |
|---|---|
| 网站 HTTPS 加密 | mod_ssl + 证书 |
| 免费证书 | Let’s Encrypt |
| 目录访问加密 | .htpasswd |
| CentOS Apache 名 | httpd |
如果你说的“加密”是:
可以告诉我具体场景,我给你更精确的方案。