Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menegakkan Versi Minimum TLS 1.2 - AWS ParallelCluster

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menegakkan Versi Minimum TLS 1.2

Untuk menambahkan peningkatan keamanan saat berkomunikasi dengan AWS layanan, Anda harus mengonfigurasi penggunaan TLS 1.2 atau yang lebih baru. AWS ParallelCluster Saat Anda menggunakan AWS ParallelCluster, Python digunakan untuk mengatur versi TLS.

Untuk memastikan tidak AWS ParallelCluster menggunakan versi TLS lebih awal dari TLS 1.2, Anda mungkin perlu mengkompilasi ulang OpenSSL untuk menerapkan minimum ini dan kemudian mengkompilasi ulang Python untuk menggunakan OpenSSL yang baru dibangun.

Tentukan Protokol yang Didukung Saat Ini

Pertama, buat sertifikat yang ditandatangani sendiri untuk digunakan untuk server pengujian dan SDK Python menggunakan OpenSSL.

$ openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365

Kemudian putar server uji menggunakan OpenSSL.

$ openssl s_server -key key.pem -cert cert.pem -www

Di jendela terminal baru, buat lingkungan virtual dan instal Python SDK.

$ python3 -m venv test-env source test-env/bin/activate pip install botocore

Buat skrip Python baru bernama check.py yang menggunakan pustaka HTTP dasar SDK.

$ import urllib3 URL = 'https://localhost:4433/' http = urllib3.PoolManager( ca_certs='cert.pem', cert_reqs='CERT_REQUIRED', ) r = http.request('GET', URL) print(r.data.decode('utf-8'))

Jalankan skrip baru Anda.

$ python check.py

Ini menampilkan detail tentang koneksi yang dibuat. Cari “Protocol:" di output. Jika outputnya adalah "TLSv1.2" atau yang lebih baru, SDK default ke TLS v1.2 atau yang lebih baru. Jika ini adalah versi sebelumnya, Anda perlu mengkompilasi ulang OpenSSL dan mengkompilasi ulang Python.

Namun, bahkan jika instalasi Python Anda default ke TLS v1.2 atau yang lebih baru, Python masih mungkin melakukan negosiasi ulang ke versi lebih awal dari TLS v1.2 jika server tidak mendukung TLS v1.2 atau yang lebih baru. Untuk memeriksa bahwa Python tidak secara otomatis melakukan negosiasi ulang ke versi sebelumnya, restart server pengujian dengan yang berikut ini.

$ openssl s_server -key key.pem -cert cert.pem -no_tls1_3 -no_tls1_2 -www

Jika Anda menggunakan versi OpenSSL yang lebih lama, Anda mungkin tidak memiliki -no_tls_3 flag yang tersedia. Jika ini masalahnya, hapus bendera karena versi OpenSSL yang Anda gunakan tidak mendukung TLS v1.3. Kemudian jalankan kembali skrip Python.

$ python check.py

Jika instalasi Python Anda dengan benar tidak menegosiasikan ulang untuk versi yang lebih awal dari TLS 1.2, Anda akan menerima kesalahan SSL.

$ urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=4433): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:1108)')))

Jika Anda dapat membuat koneksi, Anda perlu mengkompilasi ulang OpenSSL dan Python untuk menonaktifkan negosiasi protokol lebih awal dari TLS v1.2.

Kompilasi OpenSSL dan Python

Untuk memastikan bahwa AWS ParallelCluster tidak bernegosiasi untuk apa pun yang lebih awal dari TLS 1.2, Anda perlu mengkompilasi ulang OpenSSL dan Python. Untuk melakukan ini, salin konten berikut untuk membuat skrip dan menjalankannya.

#!/usr/bin/env bash set -e OPENSSL_VERSION="1.1.1d" OPENSSL_PREFIX="/opt/openssl-with-min-tls1_2" PYTHON_VERSION="3.8.1" PYTHON_PREFIX="/opt/python-with-min-tls1_2" curl -O "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" tar -xzf "openssl-$OPENSSL_VERSION.tar.gz" cd openssl-$OPENSSL_VERSION ./config --prefix=$OPENSSL_PREFIX no-ssl3 no-tls1 no-tls1_1 no-shared make > /dev/null sudo make install_sw > /dev/null cd /tmp curl -O "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz" tar -xzf "Python-$PYTHON_VERSION.tgz" cd Python-$PYTHON_VERSION ./configure --prefix=$PYTHON_PREFIX --with-openssl=$OPENSSL_PREFIX --disable-shared > /dev/null make > /dev/null sudo make install > /dev/null

Ini mengkompilasi versi Python yang memiliki OpenSSL yang ditautkan secara statis yang tidak secara otomatis menegosiasikan apa pun lebih awal dari TLS 1.2. Ini juga menginstal OpenSSL di /opt/openssl-with-min-tls1_2 direktori dan menginstal Python di direktori. /opt/python-with-min-tls1_2 Setelah Anda menjalankan skrip ini, konfirmasikan instalasi versi baru Python.

$ /opt/python-with-min-tls1_2/bin/python3 --version

Ini harus mencetak yang berikut ini.

Python 3.8.1

Untuk mengonfirmasi versi baru Python ini tidak menegosiasikan versi lebih awal dari TLS 1.2, jalankan kembali langkah-langkah dari menggunakan versi Python Tentukan Protokol yang Didukung Saat Ini yang baru diinstal (yaitu,). /opt/python-with-min-tls1_2/bin/python3

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.