Pidgin'in süresi dolmuş bir sertifikayı her zaman kabul etmesini nasıl sağlayabilirim?


8

Çalışmam yerel bir XMPP sunucusu (şimdi Openfire olarak adlandırılan Wildfire ) kullanıyor. Pidgin istemcisini kullanırken, her zaman geçersiz (süresi dolmuş) sertifikayı kabul edip etmeyeceğini soruyor.

resim açıklamasını buraya girin

Bana sormadan Pidgin'i her zaman kabul etmesini istiyorum. XMPP sunucusuna yeni bir sertifika yüklemeden bunu nasıl yapabilirim?

Sertifikayı hem Kişisel mağazama hem de Güvenilen Kök deposuna almaya çalıştım, ancak yine de aynı istemi alıyorum. Sertifika da saklanır %APPDATA%\.purple\certificates\x509\tls_peers, ancak yine de istemi alırım.

Bağlandıktan sonra hata ayıklama günlüğü:

Pidgin Debug Log : 10/4/2016 12:05:16 PM
(12:05:05) account: Connecting to account example@192.168.1.21/.
(12:05:05) connection: Connecting. gc = 04528D78
(12:05:05) dnssrv: querying SRV record for 192.168.1.21: _xmpp-client._tcp.192.168.1.21
(12:05:05) dnssrv: Couldn't look up SRV record. The filename, directory name, or volume label syntax is incorrect. (123).
(12:05:05) dnsquery: Performing DNS lookup for 192.168.1.21
(12:05:05) dnsquery: IP resolved for 192.168.1.21
(12:05:05) proxy: Attempting connection to 192.168.1.21
(12:05:05) proxy: Connecting to 192.168.1.21:5222 with no proxy
(12:05:05) proxy: Connection in progress
(12:05:05) proxy: Connecting to 192.168.1.21:5222.
(12:05:05) proxy: Connected to 192.168.1.21:5222.
(12:05:05) jabber: Sending (example@192.168.1.21): <?xml version='1.0' ?>
(12:05:05) jabber: Sending (example@192.168.1.21): <stream:stream to='192.168.1.21' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
(12:05:05) jabber: Recv (579): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="192.168.1.21" id="da08260e" xml:lang="en" version="1.0"><stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>CRAM-MD5</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features>
(12:05:05) jabber: Sending (example@192.168.1.21): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
(12:05:05) jabber: Recv (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
(12:05:05) nss: SSL version 3.1 using 128-bit AES with 160-bit SHA1 MAC
Server Auth: 2048-bit RSA, Key Exchange: 1024-bit DHE, Compression: NULL
Cipher Suite Name: TLS_DHE_RSA_WITH_AES_128_CBC_SHA
(12:05:05) nss: subject=CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US issuer=CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US
(12:05:05) certificate/x509/tls_cached: Starting verify for 192.168.1.21
(12:05:05) certificate/x509/tls_cached: Certificate 192.168.1.21 expired at Mon Aug 29 09:54:35 2016

(12:05:05) certificate/x509/tls_cached: Checking for cached cert...
(12:05:05) certificate/x509/tls_cached: ...Found cached cert
(12:05:05) nss/x509: Loading certificate from C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:05) certificate/x509/tls_cached: Peer cert matched cached
(12:05:07) util: Writing file accounts.xml to directory C:\Users\example\AppData\Roaming\.purple
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\accounts.xml
(12:05:07) util: Writing file blist.xml to directory C:\Users\example\AppData\Roaming\.purple
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\blist.xml
(12:05:07) certificate/x509/tls_cached: User ACCEPTED cert
Caching first in chain for future use as 192.168.1.21...
(12:05:07) nss/x509: Exporting certificate to C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:07) nss: Trusting CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US
(12:05:07) certificate: Successfully verified certificate for 192.168.1.21

Sertifikayı görüntülemeyi ve Windows sertifika deposuna yüklemeyi denediniz mi?
Evan Darwin

Evet, ancak Pidgin aynı hata iletisini atar.

2
Açık Debug Window(Yardım -> hata ayıklama Pencere), sunucuya bağlanıp tercih Acceptsertifika iletişim. Hata Ayıkla penceresinde sertifika ile ilgili bazı mesajlar olabilir. Günlüğü orijinal sorunuza ekleyebilirsiniz. Kabul edilen sertifikalar içinde saklanmalıdır %APPDATA%\.purple\certificates\x509\tls_peers. Sunucunuzla aynı ada sahip bir dosya varsa oraya bakmayı deneyin.
ge0rdi

1
Kötü haberlerim var. Pidgin kaynaklarına bakıyorum (günlüğünüz kod akışına yönlendirmek için çok yardımcı oldu), ancak süresi dolmuş (veya henüz geçerli değil) sertifikalar için her zaman bilgi istemi görünüyor. Sertifika zaten kabul edilmişse diğer tüm sertifika hataları bildirilmez. Bu sorunu burada Pidgin geliştiricilerine rapor etmenizi öneririm .
ge0rdi

1
Aslında, Pidgin bilet sisteminde bildirilen süresi dolmuş sertifikalarla ilgili sorunlar var . Genellikle yanıt, sunucunun sertifikasının düzeltilmesi gerektiğidir.
ge0rdi

Yanıtlar:


7

Maalesef süresi dolmuş sertifikayı kalıcı olarak kabul etmek mümkün değildir (en azından şu anda en son sürüm olan Pidgin 2.11.0'da değil).

Resmi Pigdin sorun izleme sisteminde bu konu hakkında birçok rapor var . Genel cevap sunucunun sertifikasının düzeltilmesi gerektiğidir.

Pidgin kaynaklarında da onaylanabilir :
Sertifika doğrulaması başlar x509_tls_cached_start_verify. Süresi dolmuş sertifika için işaret PURPLE_CERTIFICATE_EXPIREDseti vardır.
Sertifika önbellekte bulunursa x509_tls_cached_cert_in_cacheçağrılır. Gerçek sertifika parmak izinin önbellek ve aramalardaki bir parmak izi ile eşleştiğini doğrular x509_tls_cached_complete.
Bu işlev aşağıdakilerden birini yapar:

  • kullanıcıyı sertifikanın geçersiz olduğunu bildir (bazı önemli sertifika sorunları varsa)
  • kullanıcının sertifikayı kabul edip etmeyeceğine karar vermesine izin verir (ölümcül olmayan bir sorun varsa; süresi geçmiş sertifikayla ilgili durum budur)
  • Sertifika ile ilgili bir sorun yoksa hiçbir sorun olmadan devam eder

Süresi dolmuş sertifika hakkında uyarıyı atlamanın bir yolu yoktur (sertifikanın kendisini düzeltmek dışında).


0

Ne ge0rdi @ söyledi doğru ama elle SSL sertifikası indirmeyi deneyebilirsiniz. Bunu yapmak, izin istemeden pidgin başlatacaktır :)

Aşağıdaki komutu kullanın:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER 

Bu başarısız olursa, komutu -starttls xmpp ile aşağıdaki gibi ekleyin:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER -starttls xmpp

Dosyayı aşağıdaki klasöre yerleştirin:

~/.purple/certificates/x509/tls_peers

Not! Dosya adının sunucunun DNS adı olduğundan emin olun.

DÜZENLE:

Tahmin et, Windows makinesini kullandığını kim fark etti ... ~ / Linux kullanıcısının ev bölümüdür. Bu sayfaya göre windows eşdeğeri% APPDATA%.


Sertifika zaten orada, ancak Pidgin hala her seferinde kabul etmek isteyip istemediğimi soruyor. Bu soruda ve yorumlarda da var.
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.