温馨提示×

PHP在Linux中如何配置SSL证书

小樊
48
2025-10-22 15:58:24
栏目: 云计算

在Linux系统中配置PHP以使用SSL证书,通常涉及以下几个步骤:

  1. 获取SSL证书

    • 你可以从Let’s Encrypt免费获取SSL证书。
    • 或者从你的证书颁发机构(CA)购买。
  2. 安装SSL证书

    • 将证书文件(通常是.crt.pem格式)和私钥文件(通常是.key格式)放置在服务器上的安全位置。
    • 确保这些文件的权限设置正确,通常私钥文件的权限应该是600
  3. 配置Web服务器

    • 如果你使用的是Apache,你需要编辑虚拟主机配置文件(通常位于/etc/apache2/sites-available/目录下),添加或修改SSL相关的配置。
    • 如果你使用的是Nginx,你需要编辑服务器块配置文件(通常位于/etc/nginx/sites-available/目录下)。

Apache配置示例

假设你的证书文件位于/etc/ssl/certs/yourdomain.crt,私钥文件位于/etc/ssl/private/yourdomain.key,你可以这样配置Apache:

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

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/yourdomain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用SSL站点并重启Apache:

sudo a2ensite yourdomain.com.conf
sudo systemctl restart apache2

Nginx配置示例

假设你的证书文件位于/etc/ssl/certs/yourdomain.crt,私钥文件位于/etc/ssl/private/yourdomain.key,你可以这样配置Nginx:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /etc/ssl/certs/yourdomain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
    }

    error_log /var/log/nginx/yourdomain.com_error.log;
    access_log /var/log/nginx/yourdomain.com_access.log;
}

启用SSL站点并重启Nginx:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

验证配置

  • 使用浏览器访问https://yourdomain.com,确保能够正常访问并且显示安全锁标志。
  • 使用在线工具(如SSL Labs)检查你的SSL配置是否正确。

通过以上步骤,你应该能够在Linux系统中成功配置PHP以使用SSL证书。

0