Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang popular kerana kecekapan dan kestabilannya. Dalam aplikasi Internet hari ini, protokol SSL/TLS telah menjadi cara penting untuk memastikan keselamatan penghantaran data. Artikel ini akan memperkenalkan cara Nginx mengoptimumkan protokol SSL/TLS dan meneroka cara melaksanakan amalan keselamatan SSL/TLS.
1. Pengoptimuman protokol SSL/TLS
Protokol SSL/TLS ialah protokol yang digunakan untuk memastikan keselamatan penghantaran rangkaian. Dalam aplikasi web, pelaksanaan SSL/TLS yang biasa digunakan termasuk OpenSSL, GnuTLS dan NSS. Apabila menggunakan Nginx, cara mengoptimumkan prestasi SSL/TLS adalah sangat penting.
- Pilih versi TLS yang lebih baharu
Protokol TLS ialah versi protokol SSL yang dinaik taraf, yang bukan sahaja lebih selamat, tetapi juga lebih pantas. Dalam Nginx, anda boleh menentukan versi protokol SSL/TLS dengan menetapkan parameter ssl_protocols. Adalah disyorkan untuk menggunakan TLS v1.2 atau lebih tinggi, dengan versi SSL v3 yang lebih lama dilumpuhkan, untuk mengelakkan serangan PODLE terhadap SSL v3.
Berikut ialah contoh konfigurasi:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
- Pilih
Pilih algoritma penyulitan yang lebih selamat untuk meningkatkan keselamatan protokol SSL/TLS. Dalam Nginx, anda boleh memilih algoritma penyulitan dengan menetapkan parameter ssl_ciphers. Anda juga boleh menyesuaikan rentetan algoritma penyulitan dan memilih kaedah penyulitan yang lebih selamat.
Berikut ialah contoh konfigurasi:
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLYA -CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHAHEESSHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHAHEES284:ECDHE384: -RSA-AES128-SHA256;
ssl_prefer_server_ciphers on;
Dayakan cache Sesi-
Cache sesi boleh mengurangkan bilangan jabat tangan SSL/TLS dan meningkatkan kecekapan jabat tangan. Dalam Nginx, cache sesi boleh dihidupkan dengan menetapkan parameter ssl_session_cache. Pada masa yang sama, anda boleh menetapkan parameter ssl_session_timeout untuk menentukan masa tamat tempoh cache Sesi untuk mengelakkan Sesi tamat tempoh membuang memori.
Berikut ialah konfigurasi contoh:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Dayakan OCSP Stapling- Dayakan OCSP Stapel untuk meningkatkan keselamatan SSL/TLS. OCSP Stapling ialah mekanisme yang mana pelayan web boleh memberikan maklumat status sijil yang ditandatangani oleh pihak berkuasa pensijilan (CA) semasa jabat tangan SSL/TLS. Ini menghapuskan keperluan untuk pelanggan menghubungi pelayan OCSP untuk status sijil yang dikemas kini, meningkatkan keselamatan dan prestasi.
Dalam Nginx, anda boleh mendayakan OCSP Stapling dengan menetapkan parameter ssl_stapling. Pada masa yang sama, anda boleh menetapkan parameter ssl_stapling_verify untuk menentukan tahap semakan respons OCSP.
Berikut ialah contoh konfigurasi:
ssl_stapling on;
ssl_stapling_verify on;
2. Amalan keselamatan protokol SSL/TLS
SSL / Protokol TLS itu sendiri mempunyai keselamatan yang tinggi. Tetapi jika pelayan dan pelanggan Nginx tidak menggunakan protokol SSL/TLS dengan betul, mereka mungkin terdedah kepada serangan dan kebocoran data. Oleh itu, apabila menggunakan protokol SSL/TLS, anda perlu memberi perhatian kepada beberapa amalan keselamatan.
Gunakan patch terkini dan versi TLS
- Kemas kini sistem pengendalian dan patch perisian secara kerap dan gunakan versi TLS terkini untuk mengurangkan eksploitasi kerentanan protokol SSL/TLS. Jika tidak, penyerang boleh mengeksploitasi kelemahan untuk melakukan serangan berniat jahat pada pelayan.
Dayakan HSTS
- Mendayakan HTTP Strict Transport Security (HSTS) memastikan bahawa apabila pelanggan mengakses aplikasi web daripada nama domain yang sama, mereka sentiasa menggunakan sambungan yang disulitkan HTTPS. Ini mengurangkan serangan MiTM (serangan man-in-the-middle) dan meningkatkan tahap perlindungan untuk pengguna.
Dalam Nginx, anda boleh mengkonfigurasi HSTS dengan menambahkan kod berikut:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; pramuat";
Ini HSTS akan didayakan dan ditetapkan kepada umur maksimum 2 tahun, termasuk subdomain.
Keselamatan HTTPS untuk Proksi Depan
- HSTS boleh menghalang serangan skema butiran log masuk (skim curi-log masuk-detail). Skim butiran log masuk ialah serangan yang mencuri butiran log masuk pengguna dengan menyenarai putih atau menambah subdomain yang tidak diperlukan untuk menipu pengguna supaya mengklik pada pautan dan menggunakan HTTP dan bukannya HTTPS.
Penandatanganan Sijil Selamat
- Apabila menggunakan Nginx, anda mesti menggunakan tandatangan sijil yang telah disahkan dan disahkan oleh protokol keselamatan, jika tidak, penyerang boleh menggunakannya untuk mencuri data. Elakkan menggunakan algoritma tandatangan yang dikaitkan dengan protokol lapuk seperti MD5.
Peluasan protokol SSL/TLS boleh membantu anda mencapai pelayan Nginx yang lebih cekap dan selamat. Dengan menggunakan pelayan Nginx yang menyokong protokol SSL/TLS, anda boleh meningkatkan keselamatan dan prestasi aplikasi web anda dengan ketara. Sebelum menggunakan SSL/TLS, pastikan anda mengingati pengesyoran dan amalan keselamatan di atas.
Atas ialah kandungan terperinci Pengoptimuman protokol SSL/TLS Nginx dan amalan keselamatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!