在CentOS上配置Nginx以使用SSL證書的步驟如下:
首先,確保你的CentOS系統已經安裝了Nginx和OpenSSL。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum update -y
sudo yum install nginx openssl
你可以從證書頒發機構(CA)獲取SSL證書,例如Let’s Encrypt,或者生成自簽名證書。以下是生成自簽名證書的命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
或者,如果你選擇從CA獲取證書,可以使用Certbot等工具自動獲取和安裝證書:
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -m youremail@example.com
在Nginx的安裝目錄下創建一個用于存放證書文件的目錄,例如/etc/nginx/cert
:
sudo mkdir -p /etc/nginx/cert
將獲取到的證書文件(通常包括.crt
和.key
文件)上傳到Nginx服務器的證書目錄下:
sudo cp /path/to/your_certificate.crt /etc/nginx/cert/
sudo cp /path/to/your_certificate.key /etc/nginx/cert/
編輯Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。你可以創建一個新的配置文件,例如/etc/nginx/conf.d/ssl.conf
。添加以下內容:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/cert/your_certificate.crt;
ssl_certificate_key /etc/nginx/cert/your_certificate.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
root /var/www/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
在重新加載Nginx之前,先測試配置文件是否有語法錯誤:
sudo nginx -t
如果沒有錯誤,你會看到類似以下的輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果配置文件沒有問題,重新加載Nginx以應用更改:
sudo systemctl reload nginx
使用瀏覽器訪問你的網站,檢查地址欄中的鎖圖標是否顯示為綠色,表示SSL配置成功。你還可以使用在線工具如SSL Labs進行更詳細的測試。
以上步驟完成后,你的Nginx服務器應該已經成功配置了SSL證書,并且可以通過HTTPS提供服務。