Installing Perforce on Ubuntu is easier than ever with the helix-p4d package. Most of the process is now automated, and it even generates an SSL certificate for you. But did you know that certificate expires after 2 years?
I didn't, until my partner tried logging into P4V and got this error:
My gut told me the SSL certificate was probably expired. My gut was right.
However, what I thought would be a 10-minute fix turned into 2 frustrating hours of troubleshooting and bouncing around the web in search of a solution.
This article is an attempt to save my future self and others from the same painful experience by boiling it down to a short, easy-to-follow guide.
It's worth noting here that the error above may be caused by a date mismatch between the client and the server. See this support article for more information.
In my case I wasn't able to check the expiration date because the Perforce server stopped running, but I knew it wasn't a date mismatch, so I assumed by process of elimination that it was an expired certificate. It's unclear to me if the server stopped because of the certificate issue or for unrelated reasons, but I couldn't start it back up again until the certificate was fixed.
Login to the host machine for your Perforce server and switch to the
ssl directory for your Perforce server and delete the old certificate files. Your path may differ depending on how you configured your server.
cd /opt/perforce/servers/<server-name>/ssl rm certificate.txt rm privatekey.txt
Generate a new certificate. (More info here)
This command may return an error:
P4SSLDIR not defined or does not reference a valid directory.
If it does, try setting the
P4SSLDIR variable. (More info here)
Try generating a certificate again. If it works correctly, the command should exit without returning any messages.
Finally, if your Perforce server stopped like mine did, start it up again.
p4dctl start <server-name>
Your server now has a valid SSL certificate! Since the certificate changed, you'll get a new "trust this fingerprint?" warning when you login to P4V. Accept and carry on with your work.
If you have any problems or comments about this article, please reach out to me on Twitter.