Generate Public Key And Private Key Using Openssl

Generate CSR - OpenSSL

Introduction

Jul 09, 2014  Public Key Cryptography - RSA using OpenSSL. How to generate a public/private keypair and register a. How To Encrypt And Decrypt Files Using Private Public Keys With OpenSSL On Ubuntu.

This article provides step-by-step instructions for generating a Certificate Signing Request (CSR) in OpenSSL. This is most commonly required for web servers such as Apache HTTP Server and NGINX. If this is not the solution you are looking for, please search for your solution in the search bar above.

Public Private Key Encryption

Switch to a working directory

Advantages of private key encryption

GNU/Linux & Mac OS X users:
Open a terminal and browse to a folder where you would like to generate your keypair

Openssl Generate Private Key Csr

Windows Users:
Navigate to your OpenSSL 'bin' directory and open a command prompt in the same location.

Openssl Generate Private Key And Public Key

Generate a CSR & Private Key:
openssl req -out CSR.csr -new -newkey rsa:2048 -keyout privatekey.key

To generate a 4096-bit CSR you can replace the rsa:2048 syntax with rsa:4096 as shown below.
openssl req -out CSR.csr -new -newkey rsa:4096 -keyout privatekey.key

Note: You will be prompted to enter a password in order to proceed. Keep this password as you will need it to use the Certificate.

Fill out the following fields as prompted:
Note: The following characters can not be accepted: < > ~ ! @ # $ % ^ * / ( ) ?.,&

FieldExample
Country NameUS (2 Letter Code)
State or ProvinceNew Hampshire (Full State Name)
LocalityPortsmouth (Full City name)
OrganizationGMO GlobalSign Inc (Entity's Legal Name)
Organizational Unit Support (Optional, e.g. a department)
Common Namewww.globalsign.com (Domain or Entity name)

You should now have a Private Key (privatekey.key) which should stay on your computer, and a Certificate Signing Request (CSR.csr), which can be submitted to GlobalSign to sign your public key. Each of these files can be viewed in a plain text editor such as Notepad, TextEdit, Vi, Nano, and Notepad++.