I was going through the (seemingly intricate) procedures for getting a company's artifact on Maven Central. Then I got to the GPG signing part and entered a new world of confusion and conundrums. GPG has so many options, and it's not evident what a reasonable practice should be for signing company artifacts.
Let's say that Acme wants to publish an artifact org.example.acme:foobar:1.0.0
to Maven Central. What user ID should they use to sign it? What subkeys? How would that key be kept separate from the user's personal key?
Let me go through all the doubts to give you an idea of why it is confusing.
- What email should I use for Acme? Should I use
admin@acme.example.com
? Should the identity be for Acme, or a division of Acme? Or should only individuals sign artifacts for publication on Maven? - What about the comment? One source said we should leave comments out altogether. Should I use
"Acme (software) software@acme.example.com"
? Or just"Acme acme@acme.example.com"
. - OK, so maybe you say it doesn't matter, and that all this is opinion based, and I can use whatever works for my company---fine. But then how do I keep my company and personal ID separate? Can I have a key for Acme and a separate key for John Doe on the same keyring on the same computer? How would I then distinguish them when publishing artifacts? All of the examples seem to assume you are using a single identity.
- Should I be using subkeys? Should I create different subkeys for different departments? Or different identities for the same subkeys? Or what?
- Should I make my keys expire? Or just the main key? Or just the subkey?
I could go on and on and on... Trying to summarize, all the examples seem to assume 1) the user only has one user ID installed on their keyring, and 2) everyone signing their artifacts are individuals, not companies.
What is the expected approach for signing the Maven artifact of an organization; and how does a user manage the organization's key separately from the user's individual key?