Alastair’s Place

Software development, Cocoa, Objective-C, life. Stuff like that.

Finally Fixed One of Our Servers!

One of our servers has been playing up since back in June when something caused it to stop responding to Server Admin. The only hint was mysterious errors on the system console, such as

Jun 23 10:19:16 server servermgrd[303]: Got error -9845 for SSLHandshake
Jun 23 10:19:16 server servermgrd[303]: Exception in threadListen: Socket: Connect failed

Server Admin’s error message wasn’t much help either; it just insisted that there was no server at that address (not true).

In the end it turned out that a certificate, together with its private key, had somehow ended up in the System keychain. And servermgrd stupidly picks up any such certificate (presumably at random, as I certainly didn’t specify which one to use anywhere) and tries to use it when performing an SSL negotiation.

Deleting this rogue certificate from the System keychain seems to have fixed the problem and I can now admin the server again with Server Admin, rather than having to use the command line and a text editor.