DEV Community

Cover image for Create RSA key using openssl
Goffity Corleone
Goffity Corleone

Posted on

Create RSA key using openssl

The following command may be used with OpenSSL to create an RSA encryption key.

Step to create key to encrypt data with RSA algorithm

  1. Create private key
  2. Use private from (1) to create public key.

Generate private key using the following command:

openssl genrsa -out private.pem 4096 
Enter fullscreen mode Exit fullscreen mode

In this command, i Have used a key length of 4096 bits. recommended for length is 2048.

This gives you a private key look like:

-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- 
Enter fullscreen mode Exit fullscreen mode

Generate public key from public

The private key from step (1) we can use it to generate public key following.

openssl rsa -in private.pem -puout -out public.pem 
Enter fullscreen mode Exit fullscreen mode

This should give you a public key look like:

-----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAn0yZTRLxV2sbxzQfqeTC wwU9mpjTaL5fBnSsOLpFe5/hbD93mofHpO0ybA596ofqMtxxl8xAmcKk4fdBZzBz woDUqjBQqTQbU6hspGj9L4y1Hf1YTlqeSpyFJT3I3efmz6EFy7NjDvfLTmCC4kCw dhzh6PJkWMI+4mZ2g6rktHRBt4Ttq3jTm74WtWjVCmozJefBI7fcyLpIuZrZ98YZ E697nigjfU0GxaJEgiDtdmYrEbtZaPRK7ZusX/m5FQ97Iff1KccVYlDtRoBXaORA CnhI2MVpjYq9DQFQOU5syATi+geu2Yrazlb/yy/LTkUaNYNwHXA3YwjT3xU+m169 CT5GVT4VV4EikEen/FZSqvZYqt1BHU1X14wmjgcm0NTSeDf2vpnruAXDGP3KW5j0 PU/nnlx2DuYtnPKztrH5JHmMvz6YNvu7eI7l+yGz6tOw9P8jQqRf3DwzDuGxHVFK dqGczBTzPRjRYrtqDuHnZCtcwbxvLv8EpDlONsywQ5Jh5AOwrAyasd8xvJrd2cPG Jyfyk2f9/Ye9T/AWm1j52mB1INX+W+F2xU9abjJJ405SfHeMtIuBw+bB1KbFzgPS yintBzuhzGXX5BTybFYSYQoumAAA189/dr1mgSJqwkoKFYg9cvTn66mLzxUSpiG4 EDVpL7NnWXDgzQYYhRYXb4ECAwEAAQ== -----END PUBLIC KEY----- 
Enter fullscreen mode Exit fullscreen mode

Reference:
https://www.scottbrady91.com/openssl/creating-rsa-keys-using-openssl

Top comments (0)