Openssl Generate Csr Existing Key
I'm using openssl on Mac OS X 10.9 to generate a self-signed certificate for Windows Server Remote Desktop Services. How to add extended key usage string when generating a self-signed certificate using openssl. If you are just generating a CSR with this command line then use -reqexts 'my server exts' to request that the CA later generate. How to Generate a CSR for Apache Web Server Using OpenSSL The following instructions will guide you through the CSR generation process on Apache OpenSSL. To learn more about CSRs and the importance of your private key, reference our Overview of Certificate Signing Request article.
One of the most versatile SSL tools is OpenSSL which is an open source implementation of the SSL protocol. There are versions of OpenSSL for nearly every platform, including Windows, Linux, and Mac OS X. OpenSSL is commonly used to create the CSR and private key for many different platforms, including Apache. However, it also has hundreds of different functions that allow you to view the details of a CSR or certificate, compare an MD5 hash of the certificate and private key (to make sure they match), verify that a certificate is installed properly on any website, and convert the certificate to a different format. A compiled version of OpenSSL for Windows can be found here.
Again, once above command is input, OpenSSL will prompt few basic questions to fill the Organization specific information. You’ll need to provide the same for it to get completed. The -key option specifies an existing private key (mywebsite.key) that will be used to generate a new CSR. The -new option indicates that a CSR is being generated. Create a private key and then generate a certificate request from it: openssl genrsa -out key.pem 1024 openssl req -new -key key.pem -out req.pem Note that, if you do this directly with req (see 3rd example), if you don't use the -nodes option, your private key will also be encrypted: openssl req -newkey rsa:1024 -keyout key.pem -out req.pem.
If you don't want to bother with OpenSSL, you can do many of the same things with our SSL Certificate Tools. Below, we have listed the most common OpenSSL commands and their usage:
General OpenSSL Commands
These commands allow you to generate CSRs, Certificates, Private Keys and do other miscellaneous tasks.
- Generate a new private key and Certificate Signing Request
- Generate a self-signed certificate (see How to Create and Install an Apache Self Signed Certificate for more info)
- Generate a certificate signing request (CSR) for an existing private key
- Generate a certificate signing request based on an existing certificate
- Remove a passphrase from a private key
Checking Using OpenSSL
If you need to check the information within a Certificate, CSR or Private Key, use these commands. You can also check CSRs and check certificates using our online tools.
- Check a Certificate Signing Request (CSR)
- Check a private key
- Check a certificate
- Check a PKCS#12 file (.pfx or .p12)
Debugging Using OpenSSL
If you are receiving an error that the private doesn't match the certificate or that a certificate that you installed to a site is not trusted, try one of these commands. If you are trying to verify that an SSL certificate is installed correctly, be sure to check out the SSL Checker.

- Check an MD5 hash of the public key to ensure that it matches with what is in a CSR or private key
- Check an SSL connection. All the certificates (including Intermediates) should be displayed
Converting Using OpenSSL
These commands allow you to convert certificates and keys to different formats to make them compatible with specific types of servers or software. For example, you can convert a normal PEM file that would work with Apache to a PFX (PKCS#12) file and use it with Tomcat or IIS. Use our SSL Converter to convert certificates without messing with OpenSSL.
- Convert a DER file (.crt .cer .der) to PEM
- Convert a PEM file to DER
- Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM
You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
- Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)
Originally posted on Sun Jan 13, 2008
- Related Questions & Answers
- Selected Reading
OpenSSL is a CLI (Command Line Tool) which can be used to secure the server to generate public key infrastructure (PKI) and HTTPS. This article helps you as a quick reference to understand OpenSSL commands which are very useful in common, and for everyday scenarios especially for system administrators.
Certificate Signing Requests (CSRs)
If we want to obtain SSL certificate from a certificate authority (CA), we must generate a certificate signing request (CSR). A CSR consists of mainly the public key of a key pair, and some additional information. Both these components are merged into the certificate whenever we are signing for the CSR.
While generating a CSR, the system will prompt for information regarding the certificate and this information is called as Distinguished Name (DN). The important field in the DN is the Common Name (CN) which should be the FQND (Fully Qualified Domain Name) of the server or the host where we intend to use the certificate with.
The next item in a DN is to provide the additional information about our business or organization. If we purchase an SSL certificate from a certificate authority (CA), it is very important and required that these additional fields like “Organization” should reflect your organization for details.
Here is a general example for the CSR information prompt, when we run the OpenSSL command to generate the CSR.
We can also provide the information by non-interactive answers for the CSR information generation, we can do this by adding the –subj option to any OpenSSL commands that we try to generate or run.
Below is an example for the –subj option where we can provide the information of the organization where we want to use this CSR.
Generating CSRs
In this section, we will cover about OpenSSL commands which are related to generating the CSR. This CSR can be used to request an SSL certificate from a certificate authority.
Openssl Generate Csr Existing Key Code
Generate a Private Key and a CSR
If we want to use HTTPS (HTTP over TLS) to secure the Apache or Nginx web servers (using a Certificate Authority (CA) to issue the SSL certificate). Also, the ‘.CSR’ which we will be generating has to be sent to a CA for requesting the certificate for obtaining CA-signed SSL.
Below is the command to create a 2048-bit private key for ‘domain.key’ and a CSR ‘domain.csr’ from the scratch.

The ‘–newkey rsa:2048’ is the option which we are specifying that the key should be 2048-bit using the RSA algorithm. The ’ –nodes’ option is to specifying that the private key should not be encrypted with a pass phrase. The ‘-new’ option, indicates that a CSR is being generated.
Generate a CSR from an Existing Private Key
Here we will learn about, how to generate a CSR for which you have the private key.
Below is the command to create a new .csr file based on the private key which we already have.
Generate a CSR from an Existing Certificate and Private key
Here we can generate or renew an existing certificate where we miss the CSR file due to some reason. Here, the CSR will extract the information using the .CRT file which we have.
Below is the example for generating –
Where -x509toreq is specified that we are using the x509 certificate files to make a CSR.
Openssl Generate Cert From Csr
Generating a Self-Singed Certificates
Here we will generate the Certificate to secure the web server where we use the self-signed certificate to use for development and testing purpose.
Here, we generate self-signed certificate using –x509 option, we can generate certificates with a validity of 365 days using –days 365 and a temporary .CSR files are generated using the above information.
Viewing the Certificates Files
Please note that, CSR files are encoded with .PEM format (which is not readable by the humans). This is required to view a certificate. In this section, we can cover the OpenSSL commands which are encoded with .PEM files.
Viewing CSR Files Entires
Dvd x copy xpress key generator. The below command will be used to view the contents of the .CRT files Ex (domain.crt) in the plain text format.
Working with Private Keys
In this section, will see how to use OpenSSL commands that are specific to creating and verifying the private keys.
Create a Private Key
Below is the command to create a password-protected and, 2048-bit encrypted private key file (ex. domain.key) –
Enter a password when prompted to complete the process.
Verify a Private Key
Below is the command to check that a private key which we have generated (ex: domain.key) is a valid key or not
Openssl Generate Csr Config File
If the private key is encrypted, you will be prompted to enter the pass phrase. Upon the successful entry, the unencrypted key will be the output on the terminal.
Openssl Generate Csr San
In this article, we have learnt some commands and usage of OpenSSL commands which deals with SSL certificates where the OpenSSL has lots of features. We will learn more features and usage in the future. I hope this article will help us to understand some basic features of the OpenSSL.