Yanıtlar:
Başlamak için dikkat etmeniz gereken bazı kelimeler:
LetsEncrypt ile Genel Anahtar Pimlerini kullanabilir miyim?
Sertifika yenilenirse, Ortak Anahtar Pimi de yenilenir değil mi?
Gf_'nin söylediği her şeyi yankılardı.
Ancak, soruyu cevaplamak için evet yapabilirsiniz.
Varsayılan olarak Şifreyi Girelim, anahtarı ve sertifikayı yenileme sırasında yeniden oluşturur. Bu, ara değişikliklerde ( Mart 2016'da olduğu gibi) yapmanız gereken yaprağa sabitlemek istiyorsanız HPKP'yi uygulamayı zorlaştırır .
Hâlâ HPKP yapmak istiyorsanız, bunun etrafında birkaç seçeneğiniz vardır:
Ben sadece dns01 doğrulaması ile susuz istemci kullanarak uyguladım . DNS'imiz Azure'da barındırıldığı için dns01 kancası certzure .
Düzenleme: Özel anahtarlar hakkında konuştuğumda, her zaman sadece ortak anahtar parçalarını pim haline getirdiğiniz anlamına gelir. Özel anahtarlar, adından da anlaşılacağı gibi, her zaman gizli kalmalıdır. Uygulama ayrıntıları için kendi kancama bakın.
Bunu mümkün kılmak için özel anahtar rollover'ına ihtiyacınız vardır. Yani, her zaman mevcut özel anahtara (A olarak adlandırın) ve gelecekteki özel anahtara (B olarak adlandırın) sahip olursunuz, böylece her ikisini de iğnelerinize ekleyebilirsiniz. Bu noktada pimleriniz A ve B'dir. Sertifika yenileme günü geldiğinde, A özel anahtarı kullanılmaz hale gelir ve B canlı hale gelir. Aynı zamanda gelecekteki yeni bir özel anahtar alırsınız, C olarak adlandırın. Pin listenizi şimdi B ve C içerecek şekilde yeniden oluşturuyorsunuz. Böylece özel anahtarlarınızı bu şekilde devredersiniz. susuz bunu şimdi destekliyor .
Ayrıca, certs'i her yenilediğinizde ve böylece özel anahtarlarınızı devirdiğinizde çağrılan bir kancaya ihtiyacınız vardır. Bunu kendi başıma uyguladım .
Son olarak, bunu doğru yaparsam, şunlardan emin olmalısınız:
HPKP age x 2 < days between cert renewals
Örneğin, HPKP yaşınız 50 gündür ve her 30 günde bir sertifikaları yeniyseniz, sitenizi ilk günde ziyaret eden bir müşteri A ve B özel anahtarlarıyla takılır ve 31. günde B ve C'ye yönlendirilirsiniz. sunucuda B ve C, istemcide A ve B var, 50. günde bile bir eşleşme var ve istemci siteyi doğru bir şekilde açıyor.
AMA HPKP yaşının 70 gün olup olmadığını görelim. Her 30 günde bir certs'i yeniliyorsunuz ve müşteri sitenizi birinci günde ziyaret etti, bu yüzden sadece A ve B özel anahtarları var. 31. günde B ve C'ye, 61. günde C ve D'ye yuvarlandınız. Sunucunuzda C ve D, istemcide A ve B var, eşleşme yok ve istemciye HPKP ilkesinin sona erdiği 61. günden 71. güne kadar orta parmak verilir.
Bir başka, muhtemelen daha güvenli ve kesinlikle daha basit bir seçenek, her seferinde aynı özel anahtarı kullanmak ve bir veya birkaç yedek özel anahtar oluşturmak, daha sonra bunları HPKP yapılandırmanıza sabit kodlamak ve onunla yapılmasıdır.
Evet, zor ve hiç düşünmediğim uyarılar olabilir, ama uzun vadede göreceğiz. Açıkçası, büyük (15 gün) HPKP yaşına sahip kritik olmayan bir alt alana konuşlandırdım, böylece büyük sorunlara yol açmadı.
Düzenleme: Let's Encrypt ile HPKP kurmanıza ve Nginx kullanarak susuz kalmanıza yardımcı olacak birkaç komut dosyası yazdım: