温馨提示×

centos lamp怎么加ssl

小樊
34
2026-09-24 11:44:22
栏目: 云计算

CentOS 上搭建的 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境中添加 SSL(HTTPS),通常有以下几种常见做法。下面以 CentOS 7/8 + Apache 为例,步骤清晰、可直接操作。


一、使用 Let’s Encrypt 免费 SSL(推荐)

1. 安装 EPEL 和 Certbot

# 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

2. 申请并自动配置 SSL

certbot --apache -d yourdomain.com -d www.yourdomain.com

按提示输入邮箱、同意协议即可
Certbot 会自动:

  • 生成证书
  • 修改 Apache 虚拟主机
  • 开启 443 端口

3. 自动续期测试

certbot renew --dry-run

✅ 推荐生产环境使用


二、使用自签名 SSL(测试用)

1. 生成私钥和证书

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

2. 配置 Apache

编辑或新建:

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>

3. 重启 Apache

systemctl restart httpd

⚠️ 浏览器会提示“不安全”,仅适合测试


三、手动配置已有证书(商业 SSL)

如果你已有:

  • xxx.crt
  • xxx.key
  • (可选)ca_bundle.crt

1. 上传证书

cp xxx.crt /etc/pki/tls/certs/
cp xxx.key /etc/pki/tls/private/

2. 修改 Apache 配置

<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>

3. 重启 Apache

systemctl restart httpd

四、防火墙 & SELinux 设置

开放 443 端口

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

SELinux(如启用)

setsebool -P httpd_can_network_connect 1

五、强制 HTTP 跳转到 HTTPS(可选)

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

六、验证

  • 浏览器访问:https://yourdomain.com
  • 使用检测:https://www.ssllabs.com/ssltest/

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Apache 还是 Nginx
  • 域名是否已解析
  • 是否用面板(宝塔 / cPanel)

我可以直接给你精准命令

0