在LNMP(Linux, Nginx, MySQL, PHP)環境中實現SSL證書的安裝,通常需要以下幾個步驟:
獲取SSL證書: 你可以從證書頒發機構(CA)購買SSL證書,或者使用免費的Let’s Encrypt證書。對于Let’s Encrypt證書,你可以使用Certbot工具來自動獲取和更新證書。
安裝Nginx: 如果你還沒有安裝Nginx,請根據你的Linux發行版使用相應的包管理器來安裝。例如,在Ubuntu上,你可以使用以下命令:
sudo apt-get update
sudo apt-get install nginx
配置Nginx以使用SSL證書:
編輯Nginx的配置文件,通常位于/etc/nginx/sites-available/目錄下。你需要修改或創建一個server塊來處理HTTPS請求。以下是一個基本的配置示例:
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
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;
}
}
在這個配置中,你需要將server_name指令替換為你的域名,將ssl_certificate和ssl_certificate_key指令指向你的SSL證書文件。
重定向HTTP到HTTPS: 為了確保所有流量都通過HTTPS,你可以添加一個新的server塊來處理HTTP請求,并將它們重定向到HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
測試Nginx配置并重啟服務: 在重新加載Nginx之前,使用以下命令測試配置文件是否有語法錯誤:
sudo nginx -t
如果測試通過,使用以下命令重啟Nginx以應用更改:
sudo systemctl restart nginx
更新防火墻規則: 確保你的防火墻允許443端口的流量。例如,在Ubuntu上,你可以使用以下命令:
sudo ufw allow 'Nginx Full'
自動更新Let’s Encrypt證書(可選): 如果你使用的是Let’s Encrypt證書,可以設置Certbot來自動更新證書。Certbot通常會創建一個cron作業或systemd定時器來自動執行更新。
完成以上步驟后,你的LNMP環境應該已經成功配置了SSL證書,可以通過HTTPS訪問你的網站了。記得定期檢查證書的有效期,并在需要時更新它們。