SORU
9 Aralık 2011, Cuma


Nasıl SSL sertifika sunucusu adları çözüldü/İ alternatif isimler keytool kullanarak ekleme Yapabilirsiniz?

Bu netlik için ayrı soru olarak ifade edilmiş olabilir, ama aynı konu ile ilgilidir.

Nasıl SSL sertifika adları çözüldü server?

Neden tarayıcıları ama Java mekanizması sadece "alternatif isimler" sadece? tabi bakmak gibi sertifikanın CN alanında kullanmak gibi görünüyor

SSL sertifikası keytool kullanarak alternatif isimler eklemek mümkün mü? Yerine openSSL kullanarak iyi bir seçenektir.

Sadece küçük bir arka plan:HTTPS kullanarak birkaç sunucuları ile iletişim kurmak için ana bir sunucu almak istiyorum. Belli ki, her sunucu için SSL sertifikası almak istemiyoruz (birçok kişi olabilir), otomatik olarak imzalanan sertifikalar (keytool onları üretmek için kullanıyorum) kullanmak istiyorum. OS güvenilir sertifikalar ekliyorum sonra tarayıcılar (IE ve Chrome) mutlu bir şekilde güvenilir olarak bağlantıyı kabul edin. Ancak, hatta Java cacerts (burada sertifikaları ekledikten sonra, hala Java ve aşağıdaki özel Durum atar gibi güvenilir bağlantı kabul etmez:

Sebep: java.güvenlik.cert.CertificateException: Hayır konu diğer adları mevcut güneş at.güvenlik.açıklama.HostnameChecker.matchİP(HostnameChecker.:142 java) güneş at.güvenlik.açıklama.HostnameChecker.maç(HostnameChecker.:75 java) com.güneş.net.ssl.iç.ssl.X509TrustManagerİmpl.(X509T checkİdentity rustManagerİmpl.:264 java) com.güneş.net.ssl.iç.ssl.X509TrustManagerİmpl.checkServerTrusted( X509TrustManagerİmpl.:250 java) com.güneş.net.ssl.iç.ssl.ClientHandshaker.(Clien serverCertificate tHandshaker.:1185 java) ... 14 daha fazla

Bulduğum yapabilirim, Java güven sertifika uygulama benim kendi HostNameVerifier, kopyaladım buraya: com.sun.jbi.internal.security.https.DefaultHostnameVerifier sadece test (bu arada, hostname bir argüman olarak bu HostnameVerifier doğru, bence kesilmeliydi kabul).

CN sertifika alan ana bilgisayar (genellikle IP adresi) olarak kullanıyorum.

Herkes eğer yanlış bir şey yapıyorsam söyleyin ve doğru yönde bana gelin misiniz?

CEVAP
9 Aralık 2011, Cuma


Nasıl yapılması gerektiğini oldukça yenidir ve tüm protokoller için pratik genelleştirir RFC 6125, tanımlanır, ve yerine HTTPS özgü olan RFC 2818,. (Hatta Java 7 kullanır bunun için de son olabilir 6125, RFC emin değilim.)

RFC 2818 (Section 3.1):

Yazın dNSName bu subjectAltName bir uzantısı var, o gerekiyorsa kimlik olarak kullanılabilir. Aksi halde, (en) belirli Ortak Adı sertifikanın Konu alan kullanılmalıdır. Ancak Ortak Adı kullanımı mevcut uygulama, itiraz ve Sertifika Yetkilileri dNSName yerine kullanmak için teşvik edilir.

[...]

Bazı durumlarda, URI bir IP adresi yerine bir olarak belirtilen hostname. Bu durumda, IP adresi, subjectAltName bulunması gerekir sertifika ve tam olarak URI IP ile aynı olmalıdır.

Aslında, belirli bir sorun CN ve bir ana bilgisayar adını IP adresi kullanıyorsun olmasından kaynaklanır. Bazı tarayıcılar Tüm araçlar bu belirtim kesinlikle izleyin çünkü, özellikle "" RFC 2818 açıkça tanımlanmış (RFC 6215 tartışmalar) değil. en özel çünkü işe yarayabilir

Kullanıyorsanız keytool, as of Java 7, keytool bir seçeneği vardır bir Konu diğer Adı (bkz tablo belgeleri için -ext): kullanabilirsin -ext san=dns:www.example.com -ext san=ip:10.0.0.1.

DÜZENLEME:

Sen-ebilmek istemek bir SAN OpenSSL tarafından değiştirilmesi openssl.cnf (çekme kopyasını geçerli dizini istemiyorsan düzenlemek için genel yapılandırma, hatırladığım kadarıyla, ya da seçebilirsiniz açık bir konumu kullanarak OPENSSL_CONF ortam değişkeni).

Aşağıdaki seçeneklerden (parantez içinde uygun bölümlere önce) ayarlayın:

[req]
req_extensions = v3_req

[ v3_req ]
subjectAltName=IP:10.0.0.1
# or subjectAltName=DNS:www.example.com

Ayrıca, bu (oldukça daha bir yapılandırma dosyasında tamir) için bir ortam değişkeni burada kullanmak için güzel bir numara var: http://www.crsr.net/Notes/SSL.html

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caramthros

    Caramthros

    10 AĞUSTOS 2007
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007