This tool generates an X509 certificate using a certificate signing request (CSR). The CSR file can be DER or PEM encoded. The subject DN and/or requested extensions in the CSR file may be used or new ones can be defined. The certificate can be self-signed or signed by another. A certificate chain can be created by generating a self-signed root CA certificate, generating any intermediate CA certificates which are signed by the root, and then generating end-entity certificates signed by the intermediate CA.