Añadiendo certificados «inválidos» a Pidgin

¿Cuantas veces te habrás encontrado que libpurple te deniega el acceso a un servidor XMPP, IRC, etc por que Pidgin u otra aplicación te dice que el certificado es inválido?

Simple truco, si el servicio existe debe tener un certificado al que poder acceder. Entonces tratemos de acceder al certificado tal que así:

openssl s_client -connect servidor:puerto

Nos saldra un tocho del cual debemos fijarnos en:

-----BEGIN CERTIFICATE-----
MIIFETCCA/mgAwIBAgISA/n+36kmEgsQDImnG0l6aEZ1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNjA0MjgxMjM2MDBaFw0x
NjA3MjcxMjM2MDBaMBgxFjAUBgNVBAMTDWVsYmluYXJpby5uZXQwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbIl8nFuZUBe52XTBSg8WpKtWo3rf2N8+/
enzSNAdHI+E4y9dt6fTMCEYjFHsFoFU5PMuStoLfl4qQkiDSUkZLH7kVukL1UCf6
43j2kQB073h6IpoC0t7AZ2W1QoS4BPo/g8ZWer8hvmggq7KzTpv8sDtDi9H5P+Cc
JbUypfy80W7w2ovDI8UhSgF86xvDbFGvpCfTZKmUK5uu/g4tJ3L/g3XtEo5+Mymd
nfMn7hag0CxJShLVgX19g9z80ybvQwBCBS0UjOxpZ+VVUoDDez4LphKbHnQyjpss
gftQrIArr5CcSxcPVTiqqeLvWdbM99AHsQV0mjm2R2wB9YtFzqX/AgMBAAGjggIh
MIICHTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFKOrMCc1DtXxscFriWD5z658CTS2
MB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMHAGCCsGAQUFBwEBBGQw
YjAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9y
Zy8wLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5v
cmcvMCsGA1UdEQQkMCKCDWVsYmluYXJpby5uZXSCEXd3dy5lbGJpbmFyaW8ubmV0
MIH+BgNVHSAEgfYwgfMwCAYGZ4EMAQIBMIHmBgsrBgEEAYLfEwEBATCB1jAmBggr
BgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwgasGCCsGAQUFBwIC
MIGeDIGbVGhpcyBDZXJ0aWZpY2F0ZSBtYXkgb25seSBiZSByZWxpZWQgdXBvbiBi
eSBSZWx5aW5nIFBhcnRpZXMgYW5kIG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRo
ZSBDZXJ0aWZpY2F0ZSBQb2xpY3kgZm91bmQgYXQgaHR0cHM6Ly9sZXRzZW5jcnlw
dC5vcmcvcmVwb3NpdG9yeS8wDQYJKoZIhvcNAQELBQADggEBAHlu82sdjRP3Pvvk
hJ3x9Jva3NExhxw8/cOBFc/IJ8YOAw7/lgm33SKtzQe47KolTTENfAx3cCBjPSsx
OnPuZIEuydxjuEkS2YNlkqh/cAyFrAwc8QmYdr2TVmBDSkGd3g7gYSaLYRRXTf+N
HAn8c2r7E26dDdusmUjRO4vIbjNgP3PzFQKILlqS8djmGUjqZrZMHlQmj93o3mGR
OrPfcvflvQQfwE+gb1JDlpKyk4ipCW0VjU2R1Ze+vVxwLQQh1i8xSwN/HG3//yA3
Xkf1C924FomIbpmfFjYORE9N7dC7sKNyBp69EzeX+Z05BPyjnLnS4ldqQxcdmts6
M2W3viI=
-----END CERTIFICATE-----

Eso como podemos ver es el certificado del servicio. copiamos desde «—–BEGIN CERTIFICATE—–» hasta «—–END CERTIFICATE—–» y lo pegamos en un archivo el cual podemos llamar certificado.servicio por llamarlo de alguna manera. Guardamos el archivo.

Ahora nos falta llevarlo a Pidgin, nos vale también para otras aplicaciones pero es que Pidgin en concreto, no tiene la opción de aceptar certificados inválidos: Vamos a Tools -> Certificates. En Certificates pulsamos el botón «Add» y seleccionamos el archivo que acabamos de guardar «certificado.servicio»

Certificate Import_006

Importante, el hostname, debe ser el mismo que el servidor que hemos puesto cuando lanzamos el comando openssl s_client -connect servidor:puerto

Listo, Pidgin ya puede usar ese certificado y por lo tanto acceder al servicio.

Compartir

1 Comentario

  1. Y como se podria añadir el certificado de xmpp.elbinario.net ?

    Por lo demas ha sido un articulo excelente!
    Felicidades.

Deja una respuesta

Your email address will not be published. Required fields are marked *