在 CentOS 上搭建的 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境中添加 SSL(HTTPS),通常有以下几种常见做法。下面以 CentOS 7/8 + Apache 为例,步骤清晰、可直接操作。
# CentOS 7
yum install epel-release -y
yum install certbot python2-certbot-apache -y
# CentOS 8
dnf install epel-release -y
dnf install certbot python3-certbot-apache -y
certbot --apache -d yourdomain.com -d www.yourdomain.com
按提示输入邮箱、同意协议即可
Certbot 会自动:
- 生成证书
- 修改 Apache 虚拟主机
- 开启 443 端口
certbot renew --dry-run
✅ 推荐生产环境使用
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/pki/tls/private/apache.key \
-out /etc/pki/tls/certs/apache.crt
编辑或新建:
vi /etc/httpd/conf.d/ssl.conf
示例:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/apache.crt
SSLCertificateKeyFile /etc/pki/tls/private/apache.key
</VirtualHost>
systemctl restart httpd
⚠️ 浏览器会提示“不安全”,仅适合测试
如果你已有:
xxx.crtxxx.keyca_bundle.crtcp xxx.crt /etc/pki/tls/certs/
cp xxx.key /etc/pki/tls/private/
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/xxx.crt
SSLCertificateKeyFile /etc/pki/tls/private/xxx.key
SSLCertificateChainFile /etc/pki/tls/certs/ca_bundle.crt
</VirtualHost>
systemctl restart httpd
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
setsebool -P httpd_can_network_connect 1
<VirtualHost *:80>
ServerName yourdomain.com
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
</VirtualHost>
https://yourdomain.com如果你愿意,可以告诉我:
我可以直接给你精准命令。