Once again, I run into trouble when upgrading my LinuxMint.



In last few days, my Linux mint notifies me that lots of packages need to be upgraded. As I'm using an LTS version, I agreed to download and upgrade all packages, which includes pidgin. Pidgin was upgraded to version 2.10.9



Unfortunately, afterward, I cannot use pidgin with Office Communicator plugin to log in my corporation's Lync server. Lync always tells me it cannot validate the certificate from the server.

It's normal, because my lync server uses a self-signed certificate. But in the past, pidgin allow me to connect with a warning only, but now it denies me.



Lots of googling does not help me. Tried to install a newer version 2.10.10 also does not help me to resolve problem. It's terrible for me, because most of communication in my company use Lync, and I dont want to get back to Windows world, just because of pidgin.



Fortunately, pidgin, like most of application in Linux world, is open source. So I tried to download the source code of pidgin, tried to compile it. The self-compile package for 2.10.10 also not help me to resolve the problem, so I perform some review on the
source. IT's not really easy for me, as I never wrote any C++ program on Linux before.  Finally after half days, I found that from pidgin 2.10.9, they re-designed the NSS-SSL plugin which used as the infrastructure for SSL connection , but they forget to add
the code to process unknown CA provider. They processed the untrusted issuer, but not unknown issuer (my case, for the self-signed certificate).



in /libpurple/plugins/ssl/ssl-nss.c

case SEC_ERROR_UNTRUSTED_ISSUER:

if (crt_dat->isRoot) {
*flags |= PURPLE_CERTIFICATE_SELF_SIGNED;
} else {
*flags |= PURPLE_CERTIFICATE_CA_UNKNOWN;
}

So my work is quite easy: Add the unknown issuer processing with the same process with untrusted issuer.

case SEC_ERROR_UNKNOWN_ISSUER:

case SEC_ERROR_UNTRUSTED_ISSUER:

if (crt_dat->isRoot) {

...

After review again the latest source code in pidgin 's SCM, I found that this change is already integrated in to latest source code 3 weeks ago. So it's hopeful that in next verison of pidgin, this problem is gone.





UPDATE 2015/04/11

As with latest version of pidgin, 2.10.11 I still have the same problem.

I just performed a small hack: remove all certifications check.

Of course, it's dangerous with the Man in middle attack. But, for me, it's enough.

I put it into my google site for anybody who doesnt want to build it.



Pidgin Download

Sipe plugin download

鉴于以上的问题。查看了一下12.04和14.04的pidgin的版本号

12.04:Pidgin 2.10.3 (libpurple 2.10.3)

14.04: Pidgin 2.10.9 (libpurple 2.10.9)

果断上sourceforge上(http://sourceforge.net/projects/pidgin/files/Pidgin/2.10.3/pidgin-2.10.3.tar.gz/download?use_mirror=colocrossing&r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpidgin%2Ffiles%2FPidgin%2F2.10.3%2F&use_mirror=tcpdiag)下载pidgin2.10.3版本号的tar包。然后再编译。貌似在configure的时候依赖挺多。依照每次出错的提示,最后的configure命令例如以下:

./configure --disable-screensaver --disable-gtkspell --disable-gstreamer --disable-vv --disable-idn --disable-meanwhile --disable-avahi --disable-nm --disable-perl --disable-tcl。 make; sudo make install

OK了。

Notice:

这个时候的pidgin都默认安装在/usr/loca/下,而不是在原先的/usr/下

Ubuntu 12.04 升级到14.04之后,pidgin-sipe 出现的问题: Trouble with the pidgin and self-signed SSL certificate的更多相关文章

  1. 制作U盘启动盘将Ubuntu 12.04升级为14.04的方法

    1 介绍 在周六的下午,我决定想高速浏览一下书籍[1].看看这个关于Ubuntu的圣经到底在讲什么东东. 感觉讲的不错,当我看到介绍文件标记语言-TeX和LaTeX的时候,该书作者推荐在Ubuntu上 ...

  2. Ubuntu 14.04 升级到 Ubuntu16.04

    Ubuntu 14.04 升级到 Ubuntu16.04 1). 更改source.list 源 (24条消息) Ubuntu16.04 source.list更改源_dylan的博客-CSDN博客_ ...

  3. Thinkpad W520 + Ubuntu 12.04LTS, 13.10, 14.04LTS安装Nvidia显卡驱动设置

    Thinkpad W520 + Ubuntu 12.04LTS, 13.10, 14.04LTS安装Nvidia显卡驱动设置 http://henzhai.com/tech/2012/07/w520- ...

  4. Ubuntu14.04升级到Ubuntu16.04

    Ubuntu14.04升级到Ubuntu16.04 1.查看目前版本 lsb_release -a 2.执行更新命令 apt-get update && apt-get dist-up ...

  5. ubuntu 14.04 升级到 16.04 问题总结

    1. 需要的依赖关系未安装 The required dependency 'apt (>= 1.0.1ubuntu2.13)' is not installed. http://forum.u ...

  6. Ubuntu升级到14.04

    公司网络实在太翔了,搞了一天最终成功把ubuntu从13.10升级到了14.10,中间也越到了非常多问题,记录下来,以备參考. 13.10的时候想体验一把搜狗输入法,结果因为fcitx版本号太低,用了 ...

  7. ubuntu升级到14.04后终端显示重叠

    系统升级后,发现这个问题非常不爽,问题不大,但有时候找不到解决方法,让人纠结好久.解决方法例如以下: 编辑->配置文件首选项->常规-> monospace 改为ubuntu mon ...

  8. ubuntu 14.04 升级到18.04

    http://www.360doc.com/content/18/0929/09/35082563_790606785.shtml

  9. Linux包系列的知识(附:Ubuntu16.04升级到18.04的案例)

    Linux基础:https://www.cnblogs.com/dunitian/p/4822808.html#linux 之前看到朋友还动不动 apt-get update upgrade,就很纳闷 ...

随机推荐

  1. Qt for PC,Qt for iOS,Qt for Android (居士的博客)

    http://blog.csdn.net/Esonpo/article/details/38081607 http://blog.csdn.net/Esonpo/article/details/380 ...

  2. money 和 smallmoney

    代表货币或货币值的数据类型. 数据类型 范围 存储 money -922,337,203,685,477.5808 到 922,337,203,685,477.5807 8 字节 smallmoney ...

  3. 我的Photoshop第一个作品

    想学Photoshop好久了, 作为一个想成为"将计算机技术和艺术结合起来的人", 不会Photoshop感觉说不过去. 先选了一个图尝试做, 结果发现太难了. 我给背景上色, 画 ...

  4. bzoj2281

    有思维难度的好题这种题我们一般可以先从部分分考虑30%的分数k=2也就是黑白各一个不难发现如果初始黑白棋子相邻那必然是先手必败态否则一定是先手必胜那么30分的部分分是很容易拿到的,组合数学如果有多个棋 ...

  5. 创建通用型framework

    http://years.im/Home/Article/detail/id/52.html http://www.cocoachina.com/industry/20131204/7468.html ...

  6. Android 实用代码七段(一)

    前言 这里积累了一些不常见确又很实用的代码,每收集7条更新一次,希望能对大家有用. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: htt ...

  7. VC一些经验系列:《平均绘画矩形图,双击全屏》

    1.RGB宏报错 RGB宏是这样的, #define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))| ...

  8. linux 系统获取网络ip, mask, gateway, dns信息小程序

    net_util.c #define WIRED_DEV                   "eth0"     #define WIRELESS_DEV             ...

  9. lihgtoj 1006

    记忆化搜索下即可. #include<cstdio> #include<string> #include<cstring> #include<iostream ...

  10. 南阳理工OJ 15 括号匹配

    思路:动态规划,设dp[i][j]表示第i个字符到第j个字符所需要的最少匹配数,则:(1),如果从第i到j-1个字符中没有一个与第j个字符匹配,那么状态转移方程为 dp[i][j] = dp[i][j ...