Bunu keytool ile yapamazsınız. İlk olarak, keytool
DH'yi hiç desteklemiyor. İkincisi, keytool
herhangi bir algoritma için tek başına parametre üretmez, sadece bir privatekey / keypair. Üçüncüsü, keytool
bir anahtar çifti oluşturduğunda, kendinden imzalı bir sertifika da oluşturur (bu bazen daha sonra "gerçek" CA tarafından verilen bir sertifika ile değiştirilir) ve DH için imzalamadığı için DH için kendinden imzalı bir sertifika oluşturmak imkansızdır. Sen olabilir DH parametrelerini oluşturmak için çok basit (yaklaşık 10 hat) Java programı yazmak. Ama muhtemelen sana hiç faydası olmaz çünkü:
Java zaten DHE parametrelerini burada kabul etmiyor. JbossWS (Jboss web sunucusu, daha sonra Wildfly) Tomcat'in bir çataldır ve normalde SSL / TLS, JSSE'nin Java uygulamasını kullanır. Java 7 ile, JSSE, kabul edilemeyecek kadar zayıf olan 768 bit olan kendi DHE parametrelerini kullanır. (JSSE'nin tamamen kırık olan DH-512 için RFC gereksinimine uyduğu EXPORT paketleri hariç, ancak EXPORT süitleri zaten tamamen kırılmış ve Java 7'de varsayılan olarak devre dışı bırakılmıştır.) Java 8 JSSE DHE parametrelerinin boyutunu kontrol eder , ancak gerçek değeri kontrol etmez.
(Bazı çakışan) seçenekleriniz:
Java 8'i kullanın. Java 8'de JSSE, ancak daha önce değil, DHE'yi varsayılan olarak 1024 bits olarak ayarlar; bu, çoğu otoruğun weakdh.org olmasa bile yeterince güçlü olduğunu düşünür ve daha fazlasını belirtmenize izin verir, bkz. Https://docs.oracle.com /javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#customizing_dh_keys ve arka plan için /programming/30352105/how-to-set-custom-dh-group-in-java -sslengine-önlemek-logjam-saldırı . Java 8'den önce herhangi bir Java istemciniz varsa, sunucu 1024 bitin üzerinde DHE kullanıyorsa bunların başarısız olacağını unutmayın. Bu sorunu yaşayan başka bir müşteri bilmiyorum, ancak bu değişikliği yapmadan önce kendi testinizi yapın.
ECDHE'yi etkinleştirin. Java 7 ve sonraki sürümlerinde JSSE, DHE gibi ön hesaplamaya tabi olmayan ECDHE'yi (normalde) yeterince güçlü olan P-256 kullanarak uygular. (Bazı insanlar güvenmiyorum rağmen herhangi genelde NIST NSA etkilenir çünkü benim bildiğim hiçbir açık kaynak özellikle ECC eğrileri bir sorun gösterse de NIST ECC eğrilerinin.) Java 6 fiilen ECDHE için JSSE parçası vardır ancak yalnızca JVM'nin ECC ilkelleri için Java 6'da olmayan bir kripto "sağlayıcısı" varsa etkinleştirilir. bcprov - * - dan jdk15on http://www.bouncycastle.org/ size kavanoz Apple Şifre eğer öyleyse, ECC dahil Java kripto ilkel bir dizi için bir JCE sağlayıcıdır JRE/lib/ext
ve eklemek org.bouncycastle.jce.provider.BouncyCastleProvider
listeye JRE/lib/security/java.security
(veya uygun yapmakSecurity.add/insertProvider()
Java 6 ECDHE yapabilir. Elbette hala kullanımda olan herhangi bir Java 6'ya sahip olup olmamanız kendi başına bir sorudur.
Birkaç yıl önce, tarayıcılarda ve diğer istemcilerde ECDHE desteği iffy idi, ancak bugün AFAIK tüm güncel tarayıcılar bunu destekliyor ve DHE'ye tercih ediyor - yani, tarayıcı merhaba DHE paketlerinden önce ECDHE paketlerini listeliyor sunucu her ikisini de uygularsa, ECDHE'yi seçmesi gerektiğini unutmayın. Tarayıcı olmayan istemciler olmayabilir; emin olmak için test.
DHE'yi devre dışı bırakın. DHE şifrelerini hariç tutmak için Connector özniteliğindeki şifre listesini yapılandırabilirsiniz; buna rağmen, işe yaramaz olan staticDH ve staticECDH'yi ve varsa (tek) DES ve (tümü) "EXPORT" u (Java 6) hariç tutar. Bu, ECHDE yapmayan tarayıcıların ve istemcilerin düz RSA ile takıldıkları ve İletme Gizliliği bulunmayacakları anlamına gelir, ancak en azından "geçerli" gizlilikleri vardır. Emin hatırlamıyorum, ama sanırım 5.1 Bağlayıcı yapılandırması hala bir yerdeydi $server/deploy/jbossweb/server.xml
.
Yerli deneyin. Dediğim gibi JbossWS'ın başladığı Tomcat, HTTPS'yi (SSL / TLS) JSSE yerine aslında OpenSSL olan "yerli" aka "APR" kullanarak bir seçeneğe sahip. JbossWS üzerinde çalışmak için bu seçeneği elde etmede karışık bir başarı elde ettim ve 5.1'i hatırlamıyorum. Eğer senin JbossWS çalışılabilir TC-yerli seçeneği vardır ve eğer bu DH parametrelerini yapılandırmak işleyebilir, daha sonra bunları yapılandırmak için DH parametrelerini ve JbossWS yerli talimatları oluşturmak için openssl kullanın.