Saya baru saja menginstal Sertifikat SSL di server saya.
Kemudian mengatur redirect untuk semua lalu lintas di domain saya di Port 80 untuk mengarahkannya ke Port 443.
Dengan kata lain, semua http://example.com
lalu lintas saya sekarang dialihkan ke https://example.com
versi halaman yang sesuai.
Redirect dilakukan dalam file Apache Virtual Hosts saya dengan sesuatu seperti ini ...
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
Pertanyaan saya adalah, apakah ada kelemahan menggunakan SSL?
Karena ini bukan 301 Redirect, apakah saya akan kehilangan jus tautan / peringkat di mesin pencari dengan beralih ke https
?
Saya menghargai bantuannya. Saya selalu ingin mengatur SSL di server, hanya untuk praktik melakukannya, dan akhirnya saya memutuskan untuk melakukannya malam ini. Tampaknya berfungsi dengan baik sejauh ini, tetapi saya tidak yakin apakah itu ide yang baik untuk menggunakan ini di setiap halaman. Situs saya bukan eCommerce dan tidak menangani data sensitif; itu terutama untuk penampilan dan sensasi menginstalnya untuk belajar.
MASALAH YANG DIPERBARUI
Anehnya Bing membuat tangkapan layar ini dari situs saya sekarang karena menggunakan HTTPS di mana-mana ...
sumber
sslstrip
serangan redirect -gaya (mereka berdua permintaan man-in-the-middle membajak) sehingga HSTS -aware browser akan memblokir mereka berdua.src="://example.com/jquery.js"
- perhatikan kurangnyahttp
atauhttps
jadi browser memuat yang sesuai. Saya mengalami mimpi buruk mencoba untuk mendapatkan beberapa barang Amazon yang tertanam untuk dimuat dengan benar karena API (dimuat melalui https) menghasilkan tautan http - artinya mereka tidak berfungsi dengan baik sampai saya menemukan parameter tidak berdokumen untuk beralih tautan httpsJawaban:
The
[R]
bendera sendiri adalah302
pengalihan (Moved Temporarily
). Jika Anda benar-benar ingin orang menggunakan versi HTTPS situs Anda (petunjuk: Anda tahu), maka Anda harus menggunakan[R=301]
untuk pengalihan permanen:A
301
menjaga semua pagerank google-fu dan susah payah Anda tetap utuh . Pastikanmod_rewrite
diaktifkan:Untuk menjawab pertanyaan Anda:
Tidak. Ini sangat bagus.
sumber
Sementara saya mendukung gagasan situs SSL saja, saya akan mengatakan satu kelemahan adalah biaya overhead tergantung pada desain situs Anda. Maksud saya misalnya jika Anda menyajikan banyak gambar individu dalam tag img, ini dapat menyebabkan situs Anda berjalan jauh lebih lambat. Saya akan menyarankan siapa pun yang menggunakan server SSL saja untuk memastikan mereka bekerja pada yang berikut ini.
<meta property="og:url"
untuk menggunakan versi https domain Anda.<base href=
lagi perbarui untuk menggunakan HTTPS.Jika hal di atas ditangani, maka saya ragu Anda akan memiliki banyak masalah.
sumber
Referer
tajuk. Misalnya situs ini menggunakan jQuery dari Google CDN dan browser saya mengirim permintaan ke Google setiap kali saya memuat ulang situs. Dengan demikianReferer
tajuk juga dikirimkan ke Google yang disetel ke URL situs ini. Jadi Google dapat melacak situs yang saya kunjungi selama waktu alamat IP saya tidak berubah (dan jika saya menggunakan layanan Google selama waktu ini, Google juga dapat menghubungkan informasi ini dengan akun Google saya).Saya telah mengatur https maka Anda harus menggunakannya di mana-mana di situs. Anda akan menghindari risiko masalah konten campuran dan jika Anda memiliki alat yang diperlukan, mengapa tidak membuat seluruh situs aman?
Mengenai pengalihan dari http ke https jawabannya tidak sesederhana itu.
Mengarahkan ulang akan membuat lebih mudah bagi pengguna Anda, mereka cukup mengetik whateversite.com dan akan diarahkan ke https.
Tapi. Bagaimana jika pengguna terkadang berada di jaringan yang tidak aman (atau dekat dengan Troy Hunt dan Pineapple-nya )? Kemudian pengguna akan meminta http://whateversite.com karena kebiasaan lama. Itu adalah http. Itu bisa dikompromikan. Arahan ulang dapat mengarah ke https://whateversite.com.some.infrastructure.long.strange.url.hacker.org . Untuk pengguna biasa itu akan terlihat cukup sah. Tapi lalu lintas bisa dicegat.
Jadi kami memiliki dua persyaratan yang bersaing di sini: Agar ramah pengguna dan aman. Untungnya, ada obat yang disebut header HSTS . Dengan itu Anda dapat mengaktifkan pengalihan. Peramban akan pindah ke situs yang aman, tetapi berkat tajuk HSTS juga ingat. Ketika pengguna mengetik whateversite.com yang duduk di jaringan tidak aman itu, browser akan langsung masuk ke https, tanpa harus beralih melalui pengalihan melalui http. Kecuali Anda berurusan dengan data yang sangat sensitif, saya pikir itu adalah pertukaran yang adil antara keamanan dan kegunaan untuk sebagian besar situs. (Ketika saya baru-baru ini membuat aplikasi yang menangani rekam medis, saya membuka semua https tanpa arahan). Sayangnya Internet Explorer tidak memiliki dukungan untuk HSTS ( sumber), jadi jika audiens target Anda sebagian besar menggunakan IE dan datanya sensitif, Anda mungkin ingin menonaktifkan arahan ulang.
Jadi jika Anda tidak menargetkan pengguna IE, silakan dan gunakan redirect, tetapi aktifkan header HSTS juga.
sumber
Tidak ada yang salah dengan ini, dan sebenarnya ini praktik terbaik (untuk situs yang harus dilayani melalui koneksi yang aman). Faktanya, apa yang Anda lakukan sangat mirip dengan konfigurasi yang saya gunakan:
The
301
kode status menunjukkan permanen redirect, menginstruksikan klien mampu menggunakan URL aman untuk koneksi masa depan (misalnya memperbarui bookmark).Jika Anda hanya akan melayani situs melalui TLS / SSL, saya akan merekomendasikan arahan lebih lanjut untuk mengaktifkan HTTP Strict Transport Security (HSTS) di host virtual aman Anda :
Header ini menginstruksikan klien yang mampu (sebagian besar dari mereka hari ini, saya percaya) bahwa mereka hanya boleh menggunakan HTTPS dengan domain yang disediakan (
secure.example.com
, dalam hal ini) untuk1234
detik berikutnya . The; includeSubdomains
porsi opsional dan menunjukkan bahwa direktif berlaku tidak hanya untuk domain saat ini, tetapi setiap bawahnya (misalnyaalpha.secure.example.com
). Perhatikan bahwa header HSTS hanya diterima oleh browser saat disajikan melalui koneksi SSL / TLS!Untuk menguji konfigurasi server Anda terhadap praktik terbaik saat ini, sumber daya gratis yang baik adalah layanan Uji Server SSL Qualys ; Saya akan bertujuan untuk mencetak setidaknya A- (Anda tidak bisa mendapatkan lebih dari itu dengan Apache 2.2 karena kurangnya dukungan untuk kriptografi kurva eliptik).
sumber
Strict-Transport-Security: max-age=0
akan meniadakan arahan sebelumnya; seperti biasa, ini harus dikirim melalui HTTPS untuk diterima, tetapi ini adalah cara praktis untuk membatalkan hal-hal jika Anda memutuskan Anda juga perlu menggunakan HTTP pada domain.Wow ! redirect HTTP ke HTTPS adalah hal yang sangat bagus dan saya tidak dapat melihat kekurangan untuk itu.
Pastikan klien Anda memiliki CA yang tepat untuk menghindari peringatan yang tidak ramah pengguna tentang sertifikat di browser.
Selain itu, cara Anda mengatur Apache untuk mengalihkan ke HTTPS tampaknya baik-baik saja.
sumber
Tidak, tidak sama sekali. Sebenarnya, itu hal yang baik untuk dilakukan!
Saat pengalihan:
Itu bisa lebih efisien, dengan sepenuhnya menghilangkan penulisan ulang . Inilah konfigurasi saya pada situasi yang sama ...
sumber
HTTPS tidak sepenuhnya aman. Tentu saja, biasanya memaksa HTTPS adalah hal yang baik. Ini mencegah penjahat normal melakukan hal buruk kepada pengguna Anda.
Tapi tolong ingat untuk memeriksa Anda Pengaturan SSL seperti pengaturan SSLCiphers. Nonaktifkan hal-hal seperti RC4 crypto, protokol SSLv2 dan SSLv3. Juga, Anda harus mencari tahu, apakah perpustakaan sistem crypto sistem Anda mendukung TLS1.2 (yang merupakan hal yang ingin Anda miliki;))
Aktifkan SSL, itu hal yang baik.
sumber
Secara pribadi saya semua untuk penggunaan SSL untuk mengamankan koneksi di web, namun saya merasa bahwa semua jawaban lain yang terlewatkan di sini adalah bahwa tidak setiap perangkat dan perangkat lunak yang mampu melakukan koneksi HTTP akan dapat menggunakan SSL, jadi saya akan mempertimbangkan menyediakan beberapa cara bagi pengguna untuk menghindarinya jika tidak didukung untuk mereka. Mungkin juga bahwa orang-orang di beberapa Negara di mana teknologi enkripsi ilegal maka tidak akan diizinkan untuk mengakses situs Anda. Saya akan mempertimbangkan untuk menambahkan halaman arahan yang tidak terenkripsi dengan tautan untuk memaksa versi situs yang tidak aman tetapi kecuali jika pengguna secara khusus memilih untuk melakukan seperti yang Anda katakan dan hanya meneruskannya ke versi HTTPS.
sumber
Berikut adalah beberapa masalah sapuan jari yang luas:
MITM / SSLSTRIP : Ini adalah peringatan besar. Jika Anda akan melayani situs Anda melalui HTTPS, maka nonaktifkan HTTP di situs . Jika tidak, Anda membiarkan pengguna Anda terbuka untuk berbagai serangan man-in-the-middle termasuk SSLSTRIP, yang akan mencegat permintaan dan melayani mereka secara diam-diam melalui HTTP, memasukkan skrip malware mereka sendiri ke dalam aliran. Jika pengguna tidak memperhatikan, maka mereka akan berpikir bahwa sesi mereka aman ketika sebenarnya tidak.
Jika situs Anda memerlukan login yang aman, maka seluruh sesi pengguna harus diamankan. Jangan mengautentikasi melalui HTTPS, lalu arahkan kembali pengguna ke HTTP. Jika ya, sekali lagi, Anda membuat pengguna Anda rentan terhadap serangan MITM. Pendekatan standar untuk otentikasi hari ini adalah untuk mengotentikasi sekali, lalu meneruskan token otentikasi bolak-balik (dalam cookie). Tetapi jika Anda mengautentikasi melalui HTTPS kemudian mengarahkan ulang ke HTTP, maka seorang man-in-the-middle dapat mencegat cookie itu dan menggunakan situs tersebut seolah-olah mereka adalah pengguna terautentikasi Anda, melewati keamanan Anda.
Masalah "kinerja" dengan HTTPS adalah untuk semua tujuan praktis terbatas pada jabat tangan yang terlibat dalam menciptakan koneksi baru. Lakukan apa yang Anda bisa untuk meminimalkan kebutuhan akan beberapa koneksi HTTPS dari URL dan Anda akan berada jauh di depan. Dan itu terus terang benar bahkan jika Anda menyajikan konten Anda melalui HTTP. Jika Anda membaca di SPDY, Anda akan menyadari bahwa semua yang dilakukannya diarahkan untuk melayani semua konten dari satu URL melalui satu koneksi. Ya, menggunakan HTTPS memengaruhi caching. Tapi berapa banyak situs web yang hanya statis, konten yang bisa di-cache hari ini? Anda cenderung mendapatkan lebih banyak uang dengan menggunakan caching di server web Anda untuk meminimalkan kueri basis data yang berlebihan, mengambil data yang tidak berubah berulang-ulang, dan mencegah jalur kode mahal dari mengeksekusi lebih sering daripada yang diperlukan.
sumber
Secara teknis ini bukan jawaban untuk pertanyaan awal Anda, tetapi jika Anda menggunakan ekstensi Google Chrome HTTPSEverywhere (saya yakin ada ekstensi serupa di peramban lain), ekstensi itu secara otomatis mengalihkan situs dengan HTTP ke situs yang sama dengan HTTPS. Saya telah menggunakannya untuk sementara waktu, dan saya tidak punya masalah (kecuali mungkin memperlambat, tapi saya belum mengujinya). HTTPSEverywhere dapat diubah oleh aturan tertentu di sisi server, tetapi karena saya belum melakukan banyak hal di area itu, saya tidak yakin dengan detail yang tepat.
Kembali ke pertanyaan Anda yang sebenarnya, jika Anda menggunakan sesuatu seperti HTTPSEverywhere, bahkan ada lebih sedikit insentif untuk menggunakan HTTP-only, meskipun saya membayangkan sulit untuk membuat aturan yang benar ketika Anda membutuhkannya.
sumber
satu-satunya penarikan teknis ke HTTPS melalui HTTP adalah bahwa secara komputasi lebih mahal untuk memproses permintaan HTTPS daripada HTTP biasa
Namun mengingat bahwa sebagian besar server modern memiliki CPU bertenaga tinggi, dampak ini biasanya dapat diabaikan kecuali jika Anda berada pada tingkat lalu lintas yang sangat tinggi di mana Anda lebih cenderung menggunakan load balancers.
Dengan munculnya protokol seperti SPDY yang membutuhkan SSL / TLS untuk bekerja, ini sebenarnya melawan overhead komputasi yang disebutkan sebelumnya dengan memberikan peningkatan kinerja yang signifikan berkaitan dengan beberapa permintaan dan mendapatkan aset kepada klien lebih cepat secara keseluruhan.
sumber
Sangat bagus untuk mengarahkan ulang ke https, tetapi saya membacanya juga tergantung pada bagaimana Anda mengatur pengalihan tersebut.
Membuat server virtual khusus untuk mengalihkan permintaan http yang masuk ke koneksi https Anda seperti yang disarankan dalam jawaban di security.stackexchange.com terdengar sangat cerdas dan akan menutup beberapa ancaman keamanan tambahan. Konfigurasi di Apache akan terlihat seperti ini:
sumber