Ubuntu中PHP配置SSL证书

108
2025/3/6 15:31:47
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

  1. 安装SSL证书

    • 如果你还没有SSL证书,你需要从证书颁发机构(CA)购买一个。
    • 你可以使用Let’s Encrypt免费获取SSL证书。
  2. 安装和配置Web服务器

    • Ubuntu常用的Web服务器是Apache和Nginx。以下是针对这两个服务器的配置指南。

对于Apache服务器:

  1. 安装Apache(如果尚未安装):

    sudo apt update
    sudo apt install apache2
    
  2. 启用SSL模块

    sudo a2enmod ssl
    
  3. 重启Apache

    sudo systemctl restart apache2
    
  4. 配置SSL证书

    • 编辑SSL配置文件:
      sudo nano /etc/apache2/sites-available/default-ssl.conf
      
    • 找到以下部分并替换为你的证书和密钥路径:
      <VirtualHost *:443>
          ServerAdmin webmaster@localhost
          DocumentRoot /var/www/html
      
          SSLEngine on
          SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
          SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
          Include /etc/letsencrypt/options-ssl-apache.conf
          SSLCACertificateFile /etc/letsencrypt/chain.pem
      
          <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>
      
  5. 启用SSL站点

    sudo a2ensite default-ssl
    
  6. 重启Apache

    sudo systemctl restart apache2
    

对于Nginx服务器:

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 配置SSL证书

    • 编辑Nginx配置文件:
      sudo nano /etc/nginx/sites-available/default
      
    • 添加或修改以下部分以包含你的证书和密钥路径:
      server {
          listen 443 ssl;
          server_name yourdomain.com www.yourdomain.com;
      
          ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
          ssl_prefer_server_ciphers on;
      
          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版本调整
          }
      
          location ~ /\.ht {
              deny all;
          }
      }
      
  3. 重启Nginx

    sudo systemctl restart nginx
    
  4. 测试SSL配置

    • 使用浏览器访问你的域名,确保SSL证书正确安装并且网站可以正常访问。

验证PHP SSL配置:

确保PHP脚本能够正确处理SSL请求。你可以通过创建一个简单的PHP文件来测试:

<?php
if ($_SERVER['HTTPS'] != "on") {
    header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    exit;
}

echo "SSL is working!";
?>

将这个文件放在你的Web服务器的根目录下,然后通过浏览器访问它。如果看到“SSL is working!”的消息,说明你的PHP配置正确。

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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: ubuntu中appimage安装的步骤是什么