1. A method of distributing software to an entity and controlling the software usage based on authorized issuance of certificate comprising: authorizing the entity to issue a certificate to each of one or more machines belonging to the entity; providing the software to the entity, said entity having a right to install an instance of the software on each of the one or more machines and the right to issue a certificate to each of the one or more machines; installing said instance of the software on each of the one or more machines to provide for an installed instance of the software; issuing, by a license server of the entity, to the at least one or more machines the certificate; receiving and installing the issued certificate at the at least one or more machines; transmitting, by the license server, to each of the one or more machines a license, wherein the license includes certificate requirements; receiving, by each of the one or more machines, the transmitted license; determining, by an enforcement component at each of the one or more machines, based on the certificate requirements included in the license whether said certificate is installed on said one or more machines; determining, by the enforcement component, whether the certificate complies with the requirements by tracing a chain of authority back to the license server; and based on the determinations performed by the enforcement component, executing said installed instance of the software on said one or more machines in a first mode of usage or in a second mode of usage, wherein the first and second mode of usage are either limited-features usage or full-features usage, wherein said second mode of usage is one of a plurality of modes different from said first mode of usage.