getting TLS/SSL client-side certificate into 3.0.0?

Lucas Fisher lucas.fisher at
Sat Apr 16 19:59:48 EDT 2011

Finally got time to get my code up on See the branch:

I've been able to successfully use certificate authentication with the Openfire 
XMPP server. 

To test it out:
1. Configure with --enable-cyrus-sasl. I have to look into whether this 
requirement can go away. 
2. Create your own client certificate and key. Can be self-signed. Put the key 
and certificate in a PKCS12 file.
3. Configure Openfire to do SSL client authentication and add to the client's 
cert to the Openfire client truststore. Ask for more assistance.
4. In pidgin create an account for your XMPP server.
5. Do Tool -> Certificates -> Your Certificates -> Add. Select your PKCS12 file 
and put in the passwords as requested.
6. Edit $HOME/.purple/accounts.xml and add a node under your account giving 
the id of the certificate you added in step 5 as so:
This will be accessible via the GUI at some point.
7. Enable (login to) your account. You should be prompted for a password to 
access your key, but not for the server.

Still needs some UI implemented. I want allow each XMPP account to select 
which certificate/key to use but haven't figure out how to add that. 
PurpleAccountOption is the obvious solution but it looks like it is set at 
startup and cannot be changed later??

More polish and testing as always.

If you want to get a working setup, let me know and I can help.


On Tuesday, March 22, 2011 09:49:29 pm John Bailey wrote:
> On 03/22/2011 09:20 PM, Lucas Fisher wrote:
> > I have a bunch of code I've been working on to add client-side SSL/TLS
> > certificate authentication to XMPP and am wondering what steps I need to
> > take to get it into 3.0.
> I'd *love* to see client-side certificates usable.  Just continue working
> on it and let us know when it's ready for review.  If you'd like, you can
> open a ticket about it and reply to me off-list about it, including the
> ticket number, so I don't accidentally overlook it (it's easy to lose
> tickets in the massive sea we have!).
> > I've been working from im.pidgin.pidgin, so I haven't yet looked at
> > getting it working with so that is on the
> > todo list. Should I be pushing my branch up to I made
> > several API additions. It still needs more work on UI tie-ins, but it is
> > getting close to a fully workable solution.
> isn't a public-writable server.  We can arrange for you to
> have write access if no one objects to it, so long as your work goes on a
> branch other than im.pidgin.pidgin or  We'd
> obviously like the chance to review your code before we merge it :)
> John

More information about the Devel mailing list