2014-06-10 11 views
54

nasıl ayarlanır? Web uygulamam kontrol ettiğim farklı sayıda ana bilgisayarda çalışır. Her bir vhostun Apache konfigürasyonunu değiştirme ihtiyacını önlemek için, repo'mdaki .htaccess dosyalarını kullanarak yapının çoğunu ekledim, böylece her bir ana bilgisayarın temel kurulumu sadece birkaç satırdır. Bu ayrıca yeni bir sürümün dağıtımı üzerine yapılandırmayı değiştirmeyi mümkün kılar. Şu anda .htaccess (un) üstbilgileri ayarlıyor, bazılarının sihrini yeniden yazıyor ve UA'nın önbelleğini denetliyor.HSTS üstbilgisi .htaccess'ten sadece HTTPS

HSTS'yi .htaccess kullanarak uygulamada etkinleştirmek istiyorum.

Header always set Strict-Transport-Security "max-age=31536000" 

Ama Spec açıkça belirtmektedir: Sadece başlık ayarı kolaydır "Bir HSTS Sunucu güvenli olmayan bir aktarım üzerinden iletilen HTTP yanıtları STS başlık alanı dahil ZORUNLU". Bu yüzden, HTTP bağlantıları üzerinden gönderirken başlığı göndermek istemiyorum. Bakınız http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14.

Başlığı ortam değişkenlerini kullanarak ayarlamaya çalıştım, ancak orada sıkıştım. Bunu nasıl yapacağını bilen var mı?

+0

Yığın Taşması, programlama ve geliştirme soruları için bir sitedir. Bu soru konu dışı görünmektedir, çünkü programlama veya geliştirme ile ilgili değildir. Yardım Merkezi’ndeki [http://stackoverflow.com/help/on-topic] adresine buradan [Hangi konuları sorabilirim?] Bölümüne bakın. Belki de [Süper Kullanıcı] (http://superuser.com/) veya [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sorulacak daha iyi bir yer olabilir. Ayrıca bkz. [Nerede Dev Ops hakkında sorular yayınlayabilirim?] (Http://meta.stackexchange.com/q/134306) – jww

+3

@jww .htaccess dosyaları web uygulama repo'mun bir parçası ve geliştiricilerin istediği Uygulamanın davranışı (örneğin, önbellekleme, URL'leri yeniden yazma ve sağ üstbilgileri ayarlama). Soru burada SO (ve [apache], [.htaccess] ve [mod-headers] etiketleri mevcuttur) yaklaşık 20K kez görüntülenmektedir. Bu yüzden burada konu dışı olduğunu düşünmüyorum. – nielsr

+1

* ".htaccess dosyaları web uygulamamın bir parçasıdır ve geliştiriciler tarafından korunur ..." * - Yığın Taşması'na dahil edilmek için kriterler de yoktur. İyi bir sniff testi, kodunuzu gösterebilir misiniz? Bu durumda cevap NO'dur. Sınavdan sonra, sadece bir Apache yapılandırma sorusu. * "Soru neredeyse 20K kez görüntüleniyor ..." * - Yığın Taşması bir çöplük alanı. Konu dışı bir soru burada sorulur ve daha sonra bir arama motoru tarafından dizine alınır.Olgunun diğer örnekleri arasında [SSH üzerinden dosyaların aktarılması] bulunur (http://stackoverflow.com/q/343711). Geliştiriciler de zaman zaman SSH kullanıyor. – jww

cevap

80

Görünüşe göre kolayca kullanılabilen bir HTTPS ortam değişkeni var. aynı soruyla insanlar için:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS 
+4

Bu çalışmayı onaylayabilirim – Gaia

+2

Bu ayar hangi dosyada yapılır? –

+7

@ ted.strauss, '.htaccess' dosyasında olurdu. – zen

10

nielsr cevabı üzerine inşa etmek için, Chrome tarayıcısına etki alanını hardcode olacak https://hstspreload.org adresindeki güvenli dağıtım tavsiyelerin yerine getirilmesi için .htaccess aşağıdaki kullandı. Bunun alt alanlarınızdaki HSTS'yi zorlayacağını ve önyükleme listesine dahil edilmenin kolayca geri alınamayacağını unutmayın, bu nedenle rtfm. httpd.conf için

<IfModule mod_headers.c> 
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS 
</IfModule> 
+3

üzerinde tavsiye edilir Evet, daha güvenli evet - eğer tüm alanınız boyunca HTTPS kullanmayı düşünürseniz. Değilse, inanılmaz derecede tehlikeli - ve bu konuda bir uyarı yapmadan bunu önermek sorumsuz. Web sunucunuzun bu üstbilgiye bir üst düzey etki alanında (example.com) bir istekte yanıt verdiğini varsayalım. Daha sonra, alt etki alanlarını, yalnızca http üzerinden değil, başka bir web sunucusu tarafından sunulan alt etki alanlarını dahil ettiğiniz için (örn. Intranet.example.com) , çalışmayacak. Önyükleme etiketi de dahil olmak üzere, bunun bir ön yükleme listesine gönderilmesini sağlar, böylece web tarayıcılarına kodlanır ve geri alınamaz. –

+1

Adil yorum, yanıt güncellendi. – LJT

+1

"Ön yük" argümanını eklemeden önce küçük yazdırmayı okuyun. – Dimitris

1

(bu düzenleme erişiminiz varsa) Eğer

<VirtualHost 65.81.122.43:443> 
    Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;" 
</VirtualHost> 

NOT kullanabilirsiniz: Yalnızca HTTPS vhostu üzerinde ayarlamanız gerekir ve http vhostu üzerinde olamaz.

.htaccess dosyalarını ne zaman kullanmalıyım?

.htaccess dosyalarına izin vermek, Apache'nin sunucunuza her erişimde onları aramasını sağlayacaktır. Ana dizinler de arandığından, bu durum (küçük) bir miktar zaman alacaktır ve sunucunuzun performansını etkileyebilir. Source

+0

Apache her zaman .htaccess dosyalarını arayacaktır. Dolayısıyla, .htaccess aramalarını devre dışı bırakmadığınız sürece, bu durum Apache'nin dosyayı kontrol edeceğinden, performansı artırmaz. –