在Debian系統中配置LNMP(Linux, Nginx, MySQL, PHP)的SSL,可以按照以下步驟進行:
首先,確保你已經安裝了Nginx。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx
接下來,獲取SSL證書。你可以使用Let’s Encrypt免費獲取SSL證書。首先安裝Certbot:
sudo apt install certbot python3-certbot-nginx
然后運行Certbot來獲取并配置SSL證書:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成證書的獲取和配置。Certbot會自動修改Nginx配置文件以啟用HTTPS。
Certbot會自動創建一個Nginx配置文件,通常位于/etc/nginx/sites-available/yourdomain.com-le-ssl.conf
。你需要確保這個配置文件被正確鏈接到sites-enabled
目錄:
sudo ln -s /etc/nginx/sites-available/yourdomain.com-le-ssl.conf /etc/nginx/sites-enabled/
然后測試Nginx配置是否正確:
sudo nginx -t
如果沒有錯誤,重新加載Nginx:
sudo systemctl reload nginx
MySQL的SSL配置相對復雜,通常不需要為每個連接啟用SSL,但可以配置服務器端以要求客戶端使用SSL連接。以下是一些基本的步驟:
sudo mkdir /etc/mysql/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/ssl/mysql-key.pem -out /etc/mysql/ssl/mysql-cert.pem
編輯MySQL配置文件/etc/mysql/my.cnf
或/etc/mysql/mysql.conf.d/mysqld.cnf
,添加以下內容:
[mysqld]
ssl-ca=/etc/mysql/ssl/mysql-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-cert.pem
ssl-key=/etc/mysql/ssl/mysql-key.pem
[mysqld_safe]
ssl-ca=/etc/mysql/ssl/mysql-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-cert.pem
ssl-key=/etc/mysql/ssl/mysql-key.pem
重啟MySQL服務:
sudo systemctl restart mysql
在客戶端連接MySQL時,需要指定使用SSL:
mysql --ssl-ca=/etc/mysql/ssl/mysql-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem -u your_username -p
PHP的SSL配置通常不需要特別的設置,因為PHP-FPM會繼承Nginx的SSL配置。確保你的PHP應用程序能夠正確處理HTTPS請求即可。
通過以上步驟,你可以在Debian系統中成功配置LNMP的SSL。主要步驟包括安裝Nginx和Certbot、獲取并配置SSL證書、配置MySQL以支持SSL連接,以及確保PHP應用程序能夠處理HTTPS請求。