如何在 Amazon Lightsail 執行個體中關閉 TLS 1.0 或 TLS 1.1?
簡短描述
比 TLS 1.2 舊的所有 SSL/TLS 通訊協定版本都已不再更新而且不安全。依預設,大多數 Web 伺服器仍會開啟這些 TLS 版本。修改 Web 伺服器組態檔案中的 SSLProtocol 指示詞可關閉這些通訊協定。下列解決方案可關閉 Apache 和 NGINX Web 伺服器的 Lightsail 執行個體中這些已不再更新的 TLS 版本。
**注意:**如果您的網站使用 Amazon Lightsail 負載平衡器,那麼您也必須關閉負載平衡器中的 TLS 1.0 和 1.1 版。不過,目前不支援在 Lightsail 負載平衡器中關閉 TLS 版本。若要關閉這些 TLS 版本並使用 Lightsail 負載平衡器,請改用 Amazon Application Load Balancer,勿使用 Lightsail 負載平衡器。
解決方案
**注意:**本文所述的檔案路徑可能會因下列情況而異:
- 執行個體有 Bitnami 堆疊,而該 Bitnami 堆疊使用原生 Linux 系統套件 (方法 A)。
- 該執行個體有 Bitnami 堆疊,而該 Bitnami 堆疊為獨立安裝 (方法 B)。
如果您使用含 Bitnami 堆疊的 Lightsail 執行個體,請執行下列命令來指定您的 Bitnami 安裝類型:
test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."
含 Bitnami 堆疊的 Lightsail 執行個體
Apache Web 服務
1. 開啟下列組態檔案:
方法 A 下的 Bitnami 堆疊
sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf
方法 B 下的 Bitnami 堆疊
sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf
2. 在組態檔中修改 SSLProtocol 指示詞可反映您想要使用的 TLS 版本。在下列範例中,TLS 版本為 1.2 和 1.3:
SSLProtocol +TLSv1.2 +TLSv1.3
**注意:**只有在伺服器中有 OpenSSL 1.1.1 版時才能使用 TLSv1.3。執行 openssl version 命令可確認版本為何。
3. 按 esc 鍵,輸入 :wq!,然後按 ENTER 鍵以儲存文件。
4. 重新啟動 Apache 服務:
sudo /opt/bitnami/ctlscript.sh restart apache
NGINX Web 服務
1. 開啟下列組態檔案:
sudo vi /opt/bitnami/nginx/conf/nginx.conf
2. 在組態檔中修改 SSLProtocol 指示詞可反映您想要使用的 TLS 版本。在下列範例中,TLS 版本為 1.2 和 1.3:
ssl_protocols TLSv1.2 TLSv1.3;
**注意:**只有在伺服器中有 OpenSSL 1.1.1 版時才能使用 TLSv1.3。執行 openssl version 命令可確認版本為何。
3. 按 esc 鍵,輸入 :wq!,然後按 ENTER 鍵以儲存文件。
4. 重新啟動 Apache 服務:
sudo /opt/bitnami/ctlscript.sh restart nginx
不含 Bitnami 堆疊的 Lightsail 執行個體
Apache Web 服務
1. 開啟下列組態檔案:
適用於 Amazon Linux 2 和 CentOS 等 Linux 發行版
sudo vi /etc/httpd/conf.d/ssl.conf
適用於 Ubuntu 和 Debian 等發行版
sudo vi /etc/apache2/mods-enabled/ssl.conf
2. 在組態檔中修改 SSLProtocol 指示詞可反映您想要使用的 TLS 版本。在下列範例中,TLS 版本為 1.2 和 1.3。
SSLProtocol +TLSv1.2 +TLSv1.3
**注意:**只有在伺服器中有 OpenSSL 1.1.1 版時才能使用 TLSv1.3。執行 openssl version 命令可確認版本為何。
3. 按 esc 鍵,輸入 :wq!,然後按 ENTER 鍵以儲存文件。
4. 重新啟動 Apache 服務:
適用於 Amazon Linux 2 和 CentOS 等 Linux 發行版
sudo systemctl restart httpd
適用於 Ubuntu 和 Debian 等發行版
sudo systemctl restart apache2
NGINX Web 服務
1. 開啟下列組態檔案:
sudo vi /etc/nginx/nginx.conf
2. 在組態檔中修改 SSLProtocol 指示詞可反映您想要使用的 TLS 版本。在下列範例中,TLS 版本為 1.2 和 1.3。
ssl_protocols TLSv1.2 TLSv1.3;
**注意:**只有在伺服器中有 OpenSSL 1.1.1 版時才能使用 TLSv1.3。執行 openssl version 命令可確認版本為何。
3. 按 esc 鍵,輸入 :wq!,然後按 ENTER 鍵以儲存文件。
4. 重新啟動 Apache 服務:
sudo systemctl restart nginx