linux

LNMP环境下如何实现HTTPS

小樊
39
2025-07-25 07:56:49
栏目: 编程语言

在LNMP(Linux, Nginx, MySQL, PHP)环境下实现HTTPS,需要完成以下几个步骤:

  1. 获取SSL证书

首先,你需要一个SSL证书。你可以从证书颁发机构(CA)购买一个证书,或者使用免费的Let’s Encrypt证书。以下是使用Certbot(一个免费的Let’s Encrypt客户端)获取证书的示例:

sudo apt-get update
sudo apt-get install certbot python-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按照提示操作,Certbot会自动配置Nginx并启用HTTPS。

  1. 配置Nginx

如果你已经手动安装了SSL证书,或者使用了其他工具生成证书,你需要手动配置Nginx。编辑Nginx的配置文件(通常位于/etc/nginx/sites-available/yourdomain.com),添加以下内容:

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

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /path/to/your/fullchain.pem;
    ssl_certificate_key /path/to/your/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;

    root /path/to/your/document/root;
    index index.php index.html index.htm;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

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

yourdomain.com替换为你的域名,将/path/to/your/fullchain.pem/path/to/your/privkey.pem替换为你的SSL证书和私钥的路径。

  1. 重启Nginx

保存配置文件后,重启Nginx以应用更改:

sudo nginx -t
sudo systemctl restart nginx

现在,你的网站应该已经通过HTTPS提供服务了。你可以通过访问https://yourdomain.com来验证。

注意:以上示例中的PHP版本(php7.4-fpm)可能需要根据你的实际情况进行修改。

0
看了该问题的人还看了