現(xiàn)在是時候從的’HTTP遷移到HTTPS了。 由于最新的瀏覽器迭代,尤其適用于網(wǎng)站不安全的情況。 當(dāng)您將SSL與TLS的一兩個結(jié)合(請參閱如何在Ubuntu Server 18.04上構(gòu)建具有TLS支持的Nginx)時,您的站點將獲得更高的安全性和性能。
但是如何為Nginx啟用SSL? 我將帶你走過那個過程。 我將使用自簽名證書在Ubuntu Server 18.04上進(jìn)行演示。 您可能會使用從提供商處購買的證書。 如果是這種情況,請確保編輯步驟以反映這一點。
我們來配置吧。
生成自簽名證書
請記住,這僅用于演示目的。 在生產(chǎn)服務(wù)器上,您希望使用從信譽(yù)良好的證書頒發(fā)機(jī)構(gòu)(CA)購買的證書。 但出于測試目的,自簽名證書可以正常運(yùn)行。 這是你如何創(chuàng)建它們。
打開終端窗口并按照以下步驟操作:
1.使用命令sudo openssl genrsa -out ca.key 2048 生成私鑰
2.使用命令sudo openssl req -new -key ca.key -out ca.csr 生成CSR
3.使用命令sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt 生成自簽名密鑰
現(xiàn)在我們需要使用以下命令將新生成的文件復(fù)制到正確的位置:
sudo cp ca.crt /etc/ssl/certs/
sudo cp ca.key /etc/ssl/private/
sudo cp ca.csr /etc/ssl/private/
創(chuàng)建Nginx配置
請記住,我們希望通過TLS支持啟用SSL。 為此,我們必須使用以下命令創(chuàng)建一個新的Nginx配置文件:
sudo nano /etc/nginx/conf.d/ssl.conf
在該文件中,粘貼以下內(nèi)容:
server {
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
listen 443 ssl;
server_name www.example.com;
ssl_certificate /etc/ssl/certs/ca.crt;
ssl_certificate_key /etc/ssl/private/ca.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:HIGH:!aNULL:!MD5;
}
注意:確保更改根位置以反映您的Nginx安裝。 但是,如果您按照步驟構(gòu)建支持TLS的Nginx,則上述配置應(yīng)該可行。
保存并關(guān)閉文件。 使用以下命令測試新的Nginx配置文件:
sudo nginx -t
您應(yīng)該看到測試通過了.
重啟并測試
現(xiàn)在我們需要重啟NGINX。 使用以下命令執(zhí)行此操作:
sudo systemctl restart nginx
將瀏覽器指向https://SERVER_IP,您應(yīng)該看到NGINX歡迎屏幕。 要確保在啟用TLS 1.3的情況下交付網(wǎng)站,您可以使用瀏覽器的內(nèi)置工具。 例如,在Firefox中,打開頁面,然后單擊安全按鈕(地址欄左側(cè)的鎖定圖標(biāo))。 單擊與頁面關(guān)聯(lián)的向右箭頭,然后單擊“更多信息”。 在結(jié)果窗口(圖B)中,您應(yīng)該看到連接使用TLS 1.3加密。
這就是在Nginx網(wǎng)站上啟用SSL和TLS的全部內(nèi)容。 請記住,您應(yīng)該使用來自信譽(yù)良好的證書頒發(fā)機(jī)構(gòu)的SSL證書。 但是,將自簽名證書用于測試目的始終是個好主意。 一旦您對此過程充滿信心,請購買證書并將其部署到您的Nginx站點。