Como posso fazer o Pidgin sempre aceitar um certificado expirado?

7

Meu trabalho usa um servidor XMPP local (Wildfire, agora chamado de Openfire ). Ao usar o cliente Pidgin, ele sempre me pergunta se deve aceitar o certificado inválido (expirado).

EugostariadeteroPidginparasempreaceitá-losemmepedir.ComopossofazerissoseminstalarumnovocertificadonoservidorXMPP?

Eutenteiimportarocertificadoparaminhalojapessoaleparaoarmazenamentodaraizconfiável,masaindareceboomesmoaviso.Ocertificadotambéméarmazenadoem%APPDATA%\.purple\certificates\x509\tls_peers,masaindareceboasolicitação.

Aquiestáoregistrodedepuraçãoaoseconectar:

PidginDebugLog:10/4/201612:05:16PM(12:05:05)account:[email protected]/.(12:05:05)connection:Connecting.gc=04528D78(12:05:05)dnssrv:queryingSRVrecordfor192.168.1.21:_xmpp-client._tcp.192.168.1.21(12:05:05)dnssrv:Couldn'tlookupSRVrecord.Thefilename,directoryname,orvolumelabelsyntaxisincorrect.(123).(12:05:05)dnsquery:PerformingDNSlookupfor192.168.1.21(12:05:05)dnsquery:IPresolvedfor192.168.1.21(12:05:05)proxy:Attemptingconnectionto192.168.1.21(12:05:05)proxy:Connectingto192.168.1.21:5222withnoproxy(12:05:05)proxy:Connectioninprogress(12:05:05)proxy:Connectingto192.168.1.21:5222.(12:05:05)proxy:Connectedto192.168.1.21:5222.(12:05:05)jabber:Sending([email protected]):<?xmlversion='1.0'?>(12:05:05)jabber:Sending([email protected]):<stream:streamto='192.168.1.21'xmlns='jabber:client'xmlns:stream='http://etherx.jabber.org/streams'version='1.0'>(12:05:05)jabber:Recv(579):<?xmlversion='1.0'encoding='UTF-8'?><stream:streamxmlns: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_peers2.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_peers2.168.1.21
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers2.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
    
por Moses 28.09.2016 / 19:48

2 respostas

7

Infelizmente não é possível aceitar permanentemente certificado expirado (pelo menos não no Pidgin 2.11.0 que é a versão mais recente no momento).

Existem muitos relatórios sobre esse problema no sistema de rastreamento de problemas do Pigdin oficial a>. A resposta usual é que o certificado do servidor deve ser corrigido.

Também é possível confirmá-lo em fontes do Pidgin:
A verificação do certificado começa em x509_tls_cached_start_verify . Para o certificado expirado, há sinalizador PURPLE_CERTIFICATE_EXPIRED set.
Se o certificado foi encontrado no cache x509_tls_cached_cert_in_cache é chamado. Ele verifica se a impressão digital do certificado real corresponde a uma em cache e chama x509_tls_cached_complete .
Esta função faz um dos seguintes:

  • notificar o usuário que o certificado é inválido (se houver algum problema de certificado fatal)
  • permite que o usuário decida se deseja aceitar / rejeitar o certificado (se houver um problema não fatal; esse é o caso do certificado expirado)
  • continua sem nenhum aviso se não houver problema com o certificado

Não há como ignorar o aviso sobre o certificado expirado (além de corrigir o próprio certificado).

    
por 05.10.2016 / 12:58
-1

O que @ ge0rdi disse está certo, mas você pode tentar baixar o certificado SSL manualmente. Isso faria o pidgin iniciar sem pedir permissão:)

Use o seguinte comando:

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

Se isso falhar, acrescente o comando com -starttls xmpp da seguinte forma:

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

Coloque o arquivo na seguinte pasta:

~/.purple/certificates/x509/tls_peers

Nota! Certifique-se de que o nome do arquivo seja o nome DNS do servidor.

EDITAR:

Adivinha quem acabou de perceber que você usa uma máquina Windows ... ~ / é uma partição inicial do usuário Linux. De acordo com esta página , as janelas equivalentes são% APPDATA%.

    
por 06.10.2016 / 15:55