I've implemented a licensing client and server for our web-applications.
Currently there is only one way for licensing an app, user should manually upload the license file using specified form and menu in the management section.

I have four ways to publish the associated public key that is required to ensure license file's integrity:

1. Using a key server. Application downloads the public key from the server. This is not always possible, some of our customers have restricted internet access for their servers.
2. Hard-coding the public key. The easiest approach, but if we end up using several keys, we're going to have several different builds! And it'd be very painful to change the key afterwards.
3. Ship it as a file beside web-application's files. This way it's easier to change and replace the file.
4. Appending the public key inside the license file. This method seems very flexible and it's the best way that I came up with so far.

I'll be grateful to know your recommendations and whether it's secure to publish the public key with each license file, or not.