在LNMP(Linux, Nginx, MySQL, PHP)环境下实现HTTPS,需要完成以下几个步骤:
首先,你需要一个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。
如果你已经手动安装了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证书和私钥的路径。
保存配置文件后,重启Nginx以应用更改:
sudo nginx -t
sudo systemctl restart nginx
现在,你的网站应该已经通过HTTPS提供服务了。你可以通过访问https://yourdomain.com
来验证。
注意:以上示例中的PHP版本(php7.4-fpm)可能需要根据你的实际情况进行修改。