贝利信息

如何安装ssl证书_为php网站配置https加密传输方法教程

日期:2025-11-25 00:00 / 作者:星夢妙者
配置PHP网站HTTPS需先获取SSL证书(如Let's Encrypt),再在Apache或Nginx中启用SSL并绑定证书文件,最后设置HTTP自动跳转至HTTPS,PHP程序通常无需修改,但应注意安全Cookie设置与协议判断。

给PHP网站配置HTTPS,核心是安装SSL证书并启用SSL支持。只要服务器正确配置,PHP程序无需修改就能通过HTTPS安全传输数据。下面介绍完整流程。

获取SSL证书

要启用HTTPS,必须先拥有SSL证书。常见方式有:

以Let's Encrypt为例,使用Certbot工具申请:

sudo certbot certonly --webroot -w /var/www/html -d yourdomain.com

执行后会在/etc/letsencrypt/live/yourdomain.com/生成证书文件:fullchain.pem(公钥)和privkey.pem(私钥)。

配置Web服务器启用HTTPS

PHP运行依赖Web服务器,常见为Apache或Nginx。需在服务器中加载SSL模块并绑定证书。

Apache 配置:

LoadModule ssl_module modules/mod_ssl.so

编辑虚拟主机配置(通常在/etc/apache2/sites-available/default-ssl.conf):


ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

启用SSL站点并重启:

a2ensite default-ssl
systemctl restart apache2

Nginx 配置:

编辑站点配置文件(如/etc/nginx/sites-available/php-site):

server {
listen 443 ssl;
server_name yourdomain.com;
root /var/www/html;
index index.php index.html;

ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}

检查配置并重启:

nginx -t
systemctl reload nginx

强制HTTP跳转到HTTPS

为确保所有请求都加密,建议将HTTP自动重定向到HTTPS。

Apache:在80端口的虚拟主机中添加:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Nginx:新增一个HTTP服务器块:

server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}

PHP程序中的适配建议

大多数PHP程序无需修改代码即可运行在HTTPS下。但以下几点需要注意:

基本上就这些。证书安装后记得设置自动续期(Let's Encrypt推荐用cron定时执行renew命令),保持网站长期安全可用。