HTTPS'yi yalnızca Checkout / Hesap'ta değil, ön uçtaki tüm sayfalarda zorla


10

Arka uçta, Ön Uçta Güvenli URL Kullan'ı etkinleştirdim . Ancak kullanıcılar, ödeme / hesap sayfaları dışında güvenli olmayan URL'ler aracılığıyla sitemi ziyaret edebilir.

Tüm sayfalarda güvenli URL'leri zorlamak istiyorum. Şu anda güvenli olmayan temel URL'yi "https: // ...." olarak değiştirmek

Çalışıyor gibi görünüyor. Kullanıcılar HTTP kullanıyorsa, https'ye yönlendirilirler. Ama bunu yapmanın doğru yolu olup olmadığını merak ediyorum. Herhangi bir yan etkisi var mı?


ive doğru yolun config.xml

Yanıtlar:


16

Varsayılan yanıt, güvenli olmayan temel URL'yi https: // olarak ayarlamak, kurulumunuza bağlı olarak, kullanıcılar http: // kullanmaya çalışırsa bir yönlendirme için zaten yeterlidir

Belki php üzerinden istekleri önler gibi web sunucusu düzeyinde bir yönlendirme daha iyidir.

Ve gerçek anlamda mükemmel bir çözüm istiyorsanız, web sitenizi https://hstspreload.appspot.com/ adresine eklemeniz gerekir . Ancak buna dikkat edin, sertifikanızı değiştirmeniz gerekiyorsa, bu büyük sorunlara neden olabilir. Bırakın Hoster bu bölümü önemsiyor.


Sertifikayı neden değiştirmeliyim? HSTS "yalnızca", tarayıcının sayfaya artık HTTPS üzerinden erişmesini sağlar. Bunun için bir modül yaptım: github.com/ikonoshirt/StrictTransportSecurity
Fabian Blechschmidt

1
Belki bunu sertifika sabitleme ile biraz karıştırdım.
Önyüklemenin

2
@Flyingmana: Chromium kaynağındaki gerçek HSTS önyükleme listesine bakarsanız, girişlerin büyük çoğunluğu bir sertifika parmak izi veya türden herhangi bir şey içermez, yalnızca etki alanı adını içerir.
Leigh Brenecki

4

bunu apache'de .htaccess ile yapabilirsiniz. Şu satırları kullanın:

############################ Force SSL ############################
RewriteCond %{HTTP_HOST} !^localhost$
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############################ Force SSL ############################

4

Bunun karşısında tökezleyen herkes için (benim yaptığım gibi)

Htaccess kullanmayın. Yönetici altında gitStores -> General -> Web and change -> Use Secure URLs on Storefront -> Yes and Use Secure URLs in Admin -> Yes

Herhangi bir dosyayı düzenlemenize gerek yoktur.


1
Vay, iyi zamanlama. Dün cevapladı. Bunun cevap olması gerektiğine inanıyorum ... en azından, apache'ye dokunmadan ön uçta https ve yönetici benim için zorlanıyor. Seçili olan cevap HTTPS'yi etkinleştirir, ancak bu cevap https'yi "zorlar".
Joe Fletcher

1
Bu tam olarak soru
Dom

2

Önceki çözümleri denedim ve işe yaramış gibi görünseler de beni yönetici panelinden kilitlediler (sebebini tam olarak anlamayın).

Yönetici paneline tekrar girmek için phpmyadmin'e girmek ve core_config_data veritabanı tablosuna girmek ve her iki yolu değiştirmek zorunda kaldım : web / secure / use_in_adminhtml ve web / unsecure / base_url yönetici paneline tekrar geri dönüyorlardı. Veritabanında düzenlemeler yapmanız gerekiyorsa önbellek klasörünü temizlemeyi de unutmayın ...

Bu yüzden bunun yerine yöneticiye giriş yapmama izin veren aşağıdaki .htaccess çözümünü uyguladım

# AFTER THIS SECTION
############################################
## workaround for HTTP authorization
## in CGI environment
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# PUT THIS 
############# ALL PAGES HTTPS #################
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{REQUEST_URI} !/downloader/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
############# ALL PAGES HTTPS #################

Umarım birine yardımcı olur


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.