Peringatan: harap hanya menggunakan rekomendasi untuk konfigurasi Apache dari jawaban-jawaban di bawah ini. Untuk yang cipher(s) untuk menggunakan keamanan norma-norma yang berubah dari waktu ke waktu dan beberapa saran keamanan di bawah ini sudah out of date.
Dalam bangun dari peristiwa baru-baru ini, saya telah mempertimbangkan kembali saya setup Apache. Saat ini, saya apache situs config terlihat seperti ini:
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www-wordpress
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www-wordpress>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
Apa yang harus saya lakukan untuk mendukung pfs? Bagaimana saya bisa mengaktifkan SSL pfs secara default? Bagaimana aku bisa melaksanakan itu?
Bagaimana tentang:
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5
Catatan penambahan -SSLv3 bendera untuk menonaktifkan SSLv3. Ini ditambahkan untuk melindungi terhadap POODLE serangan.
Ini akan lebih sempurna kerahasiaan maju, tetapi tidak dengan mengorbankan menjadi rentan terhadap serangan BINATANG. Karena Apache tidak memiliki cara untuk mengkonfigurasi cipher preferensi yang didasarkan pada protocol version, saya palsu itu dengan mengacu pada cipher hanya tersedia dalam protokol baru. Secara khusus, AES hanya tersedia dengan SHA1 hash sampai TLSv1.2. Dengan demikian daftar dimulai dengan TLSv1.2 fana Diffie-Hellman cipher, maka RC4 (pertama dengan singkat DH, kemudian tanpa), dan akhirnya BINATANG-rentan AES pilihan. Termasuk tidak ada auth / enkripsi lemah / lemah hashing pada akhirnya adalah hanya untuk kebersihan yang baik dan bisa dihilangkan karena tidak seperti cipher diperkenalkan. Jika kinerja adalah kekhawatiran, menggunakan EECDH saja dan menghilangkan EDH.
Dalam kombinasi dengan Apache 2.2 (dengan demikian tidak ada EECDH sebagai @Bruno kata), per https://www.ssllabs.com/ssltest/analyze.html ini mencapai PFS untuk iOS Safari saja. IE dan Firefox yang TLSv1.0 sehingga mereka mendapatkan RC4 untuk menghindari BINATANG buas. (Sayangnya, tidak ada hal seperti itu sebagai EDH RC4, sehingga tanpa EECDH, anda menyerah PFS). Ini adalah, saya percaya, salah satu yang terbaik bisa berharap untuk dengan browser pada Apache 2.2. Chrome adalah satu-satunya yang kurang terlayani, karena mendukung TLSv1.1 dan bisa menggunakan EDH AES tanpa menjadi rentan terhadap BINATANG. Sebaliknya, hal itu akan RC4-RSA seperti Firefox dan IE. Upgrade Apache untuk mengaktifkan EECDH RC4 harus mendapatkan PFS untuk Firefox, IE dan Chrome.
Update 2013-11-09:
I've ditemukan beberapa alternatif rekomendasi di seluruh web. Mereka menempatkan kurang penekanan pada perlindungan BINATANG (mungkin bijaksana; BINATANG sebagian besar dikurangi client-side now) dan lebih menekankan pada pfs. Untuk menyesuaikan derajat mereka juga memiliki kuat preferensi untuk GCM dan lebih besar keengganan untuk menerima RC4.
Dari catatan khusus adalah, saya pikir, rekomendasi berikut:
Secara pribadi, saya'm akan pergi dengan Mozilla OpSec's. Alasan mereka lebih baik dijelaskan pada halaman mereka. Dari catatan yang ada, mereka lebih memilih AES128 atas AES256. Dalam kata-kata mereka: "[AES128] memberikan keamanan yang baik, adalah benar-benar cepat, dan tampaknya lebih tahan terhadap timing attacks."
Perlu diperhatikan di Ivan Ristic's dan Geoffroy Gramaize's rekomendasi adalah bahwa SSLv3 dinonaktifkan. Saya pikir ini sebagian besar hanya istirahat IE6, meskipun beberapa keamanan terkait perbedaan antara SSLv3 dan TLS v1.0 yang disebutkan di Wikipedia.
Juga sebelum saya didn't berbicara tentang KEJAHATAN dan PELANGGARAN. Untuk melindungi terhadap KEJAHATAN, menonaktifkan SSL kompresi. Ini adalah termasuk dalam contoh-contoh yang terkait. Untuk dilindungi terhadap PELANGGARAN, anda perlu menonaktifkan kompresi di HTTP tingkat. Untuk Apache 2.4, hanya melakukan ini sekali secara global:
<Location />
SetEnvIfExpr "%{HTTPS} == 'on'" no-gzip
</Location>
Untuk versi yang lebih tua dari Apache, tempat ini di masing-masing Virtual di mana SSLEngine on:
<Location />
SetEnv no-gzip
</Location>
Update 2014-10-14: Mozilla OpSec panduan ini sekarang dibagi menjadi rekomendasi untuk tua/menengah/modern kompatibilitas. Dengan pengaturan dari intermediate atau modern, anda berakhir dengan SSLv3 dinonaktifkan. Yang akan melindungi terhadap POODLE serangan.
Dari pemahaman saya sendiri, anda perlu mengaktifkan SSLHonorCipherOrder
dan tambahkan SSLCipherSuite
dengan ECDHE
dan DHE
cipher dari openssl cipher -v
Dari /etc/apache2/mods-available/ssl.conf
:
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:AES128-SHA:RC4-SHA:HIGH:!aNULL:!MD5:!ADH
Untuk menguji situs web anda, anda dapat menggunakan: https://www.ssllabs.com/ssltest
Catatan: Eliptic Kurva DHE hanya tampaknya bekerja dengan Apache 2.3.3 atau lebih tinggi (lihat sumber dan Bruno's komentar).
Masukkan kode ini kode di file httpd.conf di utama/inti conf directive:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
Anda bahkan dapat memeriksa status dari cara aman adalah dengan mengujinya di: https://www.ssllabs.com/ssltest/analyze.html?
Cipher suite yang menyediakan Kerahasiaan Maju Sempurna adalah mereka yang menggunakan singkat bentuk Diffie-Hellman key exchange. Kelemahan mereka adalah overhead mereka, yang dapat ditingkatkan dengan menggunakan elliptic curve varian (lihat Vincent Bernat's blog.)
Cipher suites di Apache Httpd (asalkan anda're menggunakan mod_ssl
disusun dengan OpenSSL) dikonfigurasi untuk menggunakan SSLCipherSuite
, yang membutuhkan daftar seperti yang anda akan melihat ketika menggunakan openssl cipher
perintah. Jika anda melihat OpenSSL halaman man, anda'll menemukan kEDH
adalah apa yang anda're looking for. (Anda juga bisa daftar cipher suites secara individual.)
Coba kode ini di ssl anda.conf:
SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:AES256-GCM-SHA384:AES256-SHA256:CAMELLIA256-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:CAMELLIA128-SHA
By the way,
Ahli tip: (1/n-1) membagi catatan trik ini dilaksanakan di Firefox sejak lama. Dengan demikian, anda dapat dengan aman menonaktifkan RC4 pada Firefox di menu advanced menu konfigurasi. Untuk melakukannya, masuk ke 'about:config' pada address bar, kemudian mencari 'rc4' dan ubah semua nilai-nilai yang ditemukan untuk 'palsu'. Jika anda mengalami masalah koneksi, beralih kembali parameter-parameter tersebut dengan benar.
https://cc.dcsec.uni-hannover.de/
Website ini memberikan informasi tentang SSL cipher suites browser anda mendukung untuk mengamankan koneksi HTTPS.
Artikel ini akan membantu anda mengkonfigurasi maju keamanan dan mendapatkan up to date pada standar saat ini - https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy
Sebagai 09/16/2015, ini akan membuat anda pada SSLLabs hasil tes.
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4
Saya mendapat grade A (Sept. 2016) pada SSLLabs masih mendukung Windows XP / Internet Explorer 8 dengan menggunakan ssl ini.conf konfigurasi pada Apache:
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:AES256+EECDH:DES-CBC3-SHA
Secara singkat: hanya TLS diperbolehkan: semua versi yang didukung untuk kompatibilitas dan DES-CBC3-SHA cipher diperbolehkan untuk kompatibilitas juga. Pertama, pilihan kedua cipher menggunakan Elliptic curve Diffie-Hellman, yang terakhir ditambahkan sebagai fallback karena ini pilihan yang baik antara cipher tersedia XP/IE. Jika anda've diinstal terakhir versi OpenSSL yang tersedia campuran ini sudah cukup untuk mendapatkan nilai A pada saat saya'm menulis.
Harap ini membantu.