OpenVPN: zincirde kendinden imzalı sertifika


9

TunnelBlickSertifika kullanarak bağlanmak için ( başarısız bir OS / X OpenVPN 2.2.1 istemcisi) kullanmak için çok başarısız çalışıyorum . İşte (ayıklanmış) aldığım hata iletisi:

2012-01-11 11:18:26 TLS: **. **. **. **: 1194, sid = 17a4a801 5012e004'ten ilk paket
2012-01-11 11:18:26 HATA DOĞRULA: derinlik = 1, hata = sertifika zincirinde kendinden imzalı sertifika: / C = ABD / ST = ** / L = ** / O = ** / CN = ** / emailAddress = **
2012-01-11 11:18:26 TLS_ERROR: BIO okuma tls_read_plaintext hatası: hata: 14090086: SSL rutinleri: SSL3_GET_SERVER_CERTIFICATE: sertifika doğrulaması başarısız oldu
2012-01-11 11:18:26 TLS Hatası: TLS nesnesi -> gelen düz metin okuma hatası
2012-01-11 11:18:26 TLS Hatası: TLS anlaşması başarısız oldu
2012-01-11 11:18:26 TCP / UDP: Kapatma soketi

Şimdi, işte sürtünme. Bu sertifikayı istemek için kendime bir CSR oluşturdum , diğer taraf tarafından bana sağlanan ca.crt dosyasını kullanarak (aslında, sadece emin olmak için iki kez yaptılar).

İstemci yapılandırmasındaki ilgili girdiler şunlardır:

ca   ca.crt
cert my.crt
key  my.key

ve dahası ... Anahtarları şu şekilde doğrulayabilirim:

openssl doğrula -CAfile ca.crt my.crt 
my.crt: Tamam

Tamam, şimdi iyice gizem ve güldüm. Bu noktada, CSR ve anahtarın uygun CSR kullanılarak oluşturulduğunu biliyorum . Aslında, burada yaptım çok komut:

openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key

Bunu yapmayı da biliyordum:

openssl x509 -subject -issuer -noout -in ca.crt

...

(goz kirpmak!)

Sadece buldum mu?

Bu komutun çıktısı şuna benzer: (biraz düzenlenmiş)

konu = / C = ABD / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = **
ihraççı = (aynı)

oysa OpenVPN hata mesajında ​​ST = tam olarak aynı değildir :

HATA DOĞRULA: derinlik = 1, hata = sertifika zincirinde kendinden imzalı sertifika: / C = ABD / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **

"VA" tam olarak "Virginia" ya eşit değildir.


2
Bir deneyin openssl s_client -connect host:port -showcertsve alınan sertifikanın parmak izini karşılaştırın openssl x509 -noout -text -in ca.crt.
Shane Madden

Yanıtlar:


7

Sadece bu konuya tam kapanış getirmek için: bu gerçekten problem OLDU. Aldığım "ca.crt" ("Virginia") aslında meslektaşım ("VA") kullanmak değildi ve o zaman ikimiz de fark etmedi.

Yani ... temelde (ve tamamen layman'ın terimleriyle) VPN, bulmayı beklediği ca.crt'yi arayan otorite zincirini dolaşmaya çalışıyordu, ama asla olmadı (çünkü orada değildi).

Ve bu, kripto sistemlerinin çok iyi bilindiği harika mesajlardan biri : tamamen doğru ve henüz girişimsizler için tamamen gizemli. (Ve dürüst olmak gerekirse, kripto sistemleri hiçbir şey hakkında bilgi vermeyi sevmezler, çünkü konuştukları kişinin kesinlikle kötü Havva olduğunu düşünürler , Alice veya Bob değil.)


Adil olmak gerekirse, bunun CA zinciri ile ilgisi olmadığına ve ilk etapta farklı bir CA olduğu ve bu nedenle otomatik olarak güvenilmediği gerçeği ile ilgili olduğuna ikna olmadım. OpenSSL fazla yürüyüşe çıkmak zorunda değil. Belki de demek istediğin buydu.
15'te gparent
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.