Bagaimana saya bisa membuat Pidgin selalu menerima sertifikat kedaluwarsa?

8

Pekerjaan saya menggunakan server XMPP lokal (Wildfire, sekarang disebut Openfire ). Saat menggunakan klien Pidgin, ia selalu bertanya apakah ia harus menerima sertifikat yang tidak berlaku (kadaluarsa).

masukkan deskripsi gambar di sini

Saya ingin agar Pidgin selalu menerimanya tanpa bertanya kepada saya. Bagaimana saya bisa melakukan ini tanpa menginstal sertifikat baru di server XMPP?

Saya mencoba mengimpor sertifikat ke toko Pribadi saya dan toko Root Tepercaya, tetapi saya masih mendapatkan prompt yang sama. Sertifikat juga disimpan %APPDATA%\.purple\certificates\x509\tls_peers, tetapi saya masih mendapatkan konfirmasi.

Berikut log debug saat menghubungkan:

Pidgin Debug Log : 10/4/2016 12:05:16 PM
(12:05:05) account: Connecting to account [email protected]/.
(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 ([email protected]): <?xml version='1.0' ?>
(12:05:05) jabber: Sending ([email protected]): <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 ([email protected]): <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

sumber
Sudahkah Anda mencoba melihat sertifikat dan menginstalnya ke toko sertifikat Windows?
Evan Darwin
Ya, tapi Pidgin melempar pesan kesalahan yang sama.
2
Buka Debug Window(Bantuan -> Jendela Debug), sambungkan ke server dan pilih Acceptdalam dialog sertifikat. Mungkin ada beberapa pesan terkait sertifikat di jendela Debug. Anda dapat melampirkan log ke pertanyaan awal Anda. Sertifikat yang diterima harus disimpan di %APPDATA%\.purple\certificates\x509\tls_peers. Coba lihat di sana jika ada file dengan nama yang sama seperti server Anda.
ge0rdi
1
Saya punya kabar buruk. Saya melihat sumber Pidgin (log Anda banyak membantu mengarahkan aliran kode), tetapi tampaknya untuk sertifikat yang kedaluwarsa (atau belum valid) selalu ada prompt. Semua kesalahan sertifikat lainnya tidak dilaporkan jika sertifikat sudah diterima. Saya sarankan untuk melaporkan masalah ini ke pengembang Pidgin di sini .
ge0rdi
1
Bahkan ada masalah dengan sertifikat kadaluarsa yang dilaporkan dalam sistem tiket Pidgin . Biasanya jawabannya adalah bahwa sertifikat server harus diperbaiki.
ge0rdi

Jawaban:

7

Sayangnya tidak mungkin untuk menerima sertifikat kedaluwarsa secara permanen (setidaknya tidak dalam Pidgin 2.11.0 yang merupakan versi terbaru saat ini).

Ada banyak laporan tentang masalah ini dalam sistem pelacakan masalah Pigdin resmi . Jawaban yang biasa adalah bahwa sertifikat server harus diperbaiki.

Anda juga dapat mengonfirmasi di sumber Pidgin :
Verifikasi sertifikat dimulai pada x509_tls_cached_start_verify. Untuk sertifikat kadaluarsa ada flag yang PURPLE_CERTIFICATE_EXPIREDditetapkan.
Jika sertifikat ditemukan dalam cache x509_tls_cached_cert_in_cachedisebut. Ini memverifikasi bahwa sidik jari sertifikat yang sebenarnya cocok dengan satu di cache dan panggilan x509_tls_cached_complete.
Fungsi ini melakukan salah satu dari yang berikut:

  • beri tahu pengguna bahwa sertifikat tidak valid (jika ada beberapa masalah sertifikat fatal)
  • memungkinkan pengguna memutuskan apakah akan menerima / menolak sertifikat (jika ada masalah non-fatal; ini adalah kasus dengan sertifikat kedaluwarsa)
  • terus tanpa prompt jika tidak ada masalah dengan sertifikat

Tidak ada cara untuk melewatkan peringatan tentang sertifikat kadaluarsa (selain memperbaiki sertifikat itu sendiri).

ge0rdi
sumber
0

Apa yang dikatakan @ ge0rdi benar tetapi Anda dapat mencoba mengunduh sertifikat SSL dengan tangan. Melakukan ini akan membuat pidgin memulai tanpa meminta izin :)

Gunakan perintah berikut:

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

Jika itu gagal tambahkan perintah dengan -starttls xmpp sebagai berikut:

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

Tempatkan file di folder berikut:

~/.purple/certificates/x509/tls_peers

Catatan! Pastikan nama file adalah nama DNS server.

EDIT:

Tebak siapa yang baru saja memperhatikan Anda menggunakan mesin Windows ... ~ / adalah partisi rumah pengguna Linux. Menurut halaman ini windows equivelant adalah% APPDATA%.

Rick van Lieshout
sumber
Sertifikat sudah ada di sana, tetapi Pidgin masih bertanya apakah saya ingin menerimanya setiap waktu. Itu ada di pertanyaan dan di komentar juga.