Generate A Private Key Openssl

First, you have to generate parameters from which to generate the key then to generate the key itself. Openssl dsaparam -out dsaparam.pem 2048 openssl gendsa -des3 -out privkey.pem dsaparam.pem. Again like RSA, 2048 is the size of the key, in bits with anything smaller than 2048 being insecure in todays standards.

  1. Openssl Key Pair
  2. Openssl Generate Rsa Private Key
  3. Openssl Generate Keypair
  • This module allows one to (re)generate OpenSSL private keys.
  • One can generate RSA, DSA, ECC or EdDSA private keys.
  • Keys are generated in PEM format.
  • Please note that the module regenerates private keys if they don’t match the module’s options. In particular, if you provide another passphrase (or specify none), change the keysize, etc., the private key will be regenerated. If you are concerned that this could overwrite your private key, consider using the backup option.
  • The module can use the cryptography Python library, or the pyOpenSSL Python library. By default, it tries to detect which one is available. This can be overridden with the select_crypto_backend option. Please note that the PyOpenSSL backend was deprecated in Ansible 2.9 and will be removed in Ansible 2.13.”

The below requirements are needed on the host that executes this module.

  • Either cryptography >= 1.2.3 (older versions might work as well)
  • Or pyOpenSSL
ParameterChoices/DefaultsComments
attributes
string
The attributes the resulting file or directory should have.
To get supported flags look at the man page for chattr on the target system.
This string should contain the attributes in the same order as the one displayed by lsattr.
The = operator is assumed as default, otherwise + or - operators need to be included in the string.
backup
added in 2.8
    Choices:
  • yes
Create a backup file including a timestamp so you can get the original private key back if you overwrote it with a new one by accident.
cipher
string
The cipher to encrypt the private key. (Valid values can be found by running `openssl list -cipher-algorithms` or `openssl list-cipher-algorithms`, depending on your OpenSSL version.)
curve
added in 2.8
    Choices:
  • secp384r1
  • secp521r1
  • secp224r1
  • secp192r1
  • secp256r1
  • secp256k1
  • brainpoolP256r1
  • brainpoolP384r1
  • brainpoolP512r1
  • sect571k1
  • sect409k1
  • sect283k1
  • sect233k1
  • sect163k1
  • sect571r1
  • sect409r1
  • sect283r1
  • sect233r1
  • sect163r2
Note that not all curves are supported by all versions of cryptography.
For maximal interoperability, secp384r1 or secp256r1 should be used.
We use the curve names as defined in the IANA registry for TLS.
force
boolean
    Choices:
  • yes
Should the key be regenerated even if it already exists.
group
string
Name of the group that should own the file/directory, as would be fed to chown.
mode
string
The permissions the resulting file or directory should have.
For those used to /usr/bin/chmod remember that modes are actually octal numbers. You must either add a leading zero so that Ansible's YAML parser knows it is an octal number (like 0644 or 01777) or quote it (like '644' or '1777') so Ansible receives a string and can do its own conversion from string into number.
Giving Ansible a number without following one of these rules will end up with a decimal number which will have unexpected results.
As of Ansible 1.8, the mode may be specified as a symbolic mode (for example, u+rwx or u=rw,g=r,o=r).
As of Ansible 2.6, the mode may also be the special string preserve.
When set to preserve the file will be given the same permissions as the source file.
owner
string
Name of the user that should own the file/directory, as would be fed to chown.
passphrase
string
The passphrase for the private key.
path
path / required
Name of the file in which the generated TLS/SSL private key will be written. It will have 0600 mode.
select_crypto_backend
string
    Choices:
  • auto
  • cryptography
  • pyopenssl
The default choice is auto, which tries to use cryptography if available, and falls back to pyopenssl.
If set to pyopenssl, will try to use the pyOpenSSL library.
If set to cryptography, will try to use the cryptography library.
Please note that the pyopenssl backend has been deprecated in Ansible 2.9, and will be removed in Ansible 2.13. From that point on, only the cryptography backend will be available.
selevel
string
Default:
The level part of the SELinux file context.
This is the MLS/MCS attribute, sometimes known as the range.
When set to _default, it will use the level portion of the policy if available.
serole
string
When set to _default, it will use the role portion of the policy if available.
setype
string
When set to _default, it will use the type portion of the policy if available.
seuser
string
By default it uses the system policy, where applicable.
When set to _default, it will use the user portion of the policy if available.
size
integer
Default:
Size (in bits) of the TLS/SSL key to generate.
state
string
    Choices:
  • absent
Whether the private key should exist or not, taking action if the state is different from what is stated.
type
string
    Choices:
  • DSA
  • ECC
  • Ed25519
  • Ed448
  • X25519
  • X448
The algorithm used to generate the TLS/SSL private key.
Note that ECC, X25519, X448, Ed25519 and Ed448 require the cryptography backend. X25519 needs cryptography 2.5 or newer, while X448, Ed25519 and Ed448 require cryptography 2.6 or newer. For ECC, the minimal cryptography version required depends on the curve option.
unsafe_writes
boolean
    Choices:
  • yes
Influence when to use atomic operation to prevent data corruption or inconsistent reads from the target file.
By default this module uses atomic operations to prevent data corruption or inconsistent reads from the target files, but sometimes systems are configured or just broken in ways that prevent this. One example is docker mounted files, which cannot be updated atomically from inside the container and can only be written in an unsafe manner.
This option allows Ansible to fall back to unsafe methods of updating files when atomic operations fail (however, it doesn't force Ansible to perform unsafe writes).
IMPORTANT! Unsafe writes are subject to race conditions and can lead to data corruption.

See also

openssl_certificate – Generate and/or check OpenSSL certificates
The official documentation on the openssl_certificate module.
openssl_csr – Generate OpenSSL Certificate Signing Request (CSR)
The official documentation on the openssl_csr module.
openssl_dhparam – Generate OpenSSL Diffie-Hellman Parameters
The official documentation on the openssl_dhparam module.
openssl_pkcs12 – Generate OpenSSL PKCS#12 archive
The official documentation on the openssl_pkcs12 module.
openssl_publickey – Generate an OpenSSL public key from its private key
The official documentation on the openssl_publickey module.

Common return values are documented here, the following are the fields unique to this module:

KeyReturnedDescription
backup_file
string
changed and if backup is yes
Sample:
curvechanged or success, and type is ECC
Elliptic curve used to generate the TLS/SSL private key.

secp256r1
filename
string
changed or success
Sample:
fingerprintchanged or success
The fingerprint of the public key. Fingerprint will be generated for each hashlib.algorithms available.
The PyOpenSSL backend requires PyOpenSSL >= 16.0 for meaningful output.

{'md5': '84:75:71:72:8d:04:b5:6c:4d:37:6d:66:83:f5:4c:29', 'sha1': '51:cc:7c:68:5d:eb:41:43:88:7e:1a:ae:c7:f8:24:72:ee:71:f6:10', 'sha224': 'b1:19:a6:6c:14:ac:33:1d:ed:18:50:d3:06:5c:b2:32:91:f1:f1:52:8c:cb:d5:75:e9:f5:9b:46', 'sha256': '41:ab:c7:cb:d5:5f:30:60:46:99:ac:d4:00:70:cf:a1:76:4f:24:5d:10:24:57:5d:51:6e:09:97:df:2f:de:c7', 'sha384': '85:39:50:4e:de:d9:19:33:40:70:ae:10:ab:59:24:19:51:c3:a2:e4:0b:1c:b1:6e:dd:b3:0c:d9:9e:6a:46:af:da:18:f8:ef:ae:2e:c0:9a:75:2c:9b:b3:0f:3a:5f:3d', 'sha512': 'fd:ed:5e:39:48:5f:9f:fe:7f:25:06:3f:79:08:cd:ee:a5:e7:b3:3d:13:82:87:1f:84:e1:f5:c7:28:77:53:94:86:56:38:69:f0:d9:35:22:01:1e:a6:60:...:0f:9b'}
size
integer
changed or success
Sample:
typechanged or success
Algorithm used to generate the TLS/SSL private key.

RSA

  • This module is not guaranteed to have a backwards compatible interface. [preview]
  • This module is maintained by the Ansible Community. [community]

Authors¶

  • Yanis Guenane (@Spredzy)
  • Felix Fontein (@felixfontein)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Generate a certificate signing request

Before you can install a Secure Socket Layer (SSL) certificate, you must first generate a certificate signing request (CSR). You can do this by using one of the following methods:

Openssl

OpenSSL

The following sections describe how to use OpenSSL to generate a CSR for a single host name. If you want to generate a CSR for multiple host names, we recommend using the Cloud Control Panel or the MyRackspace Portal.

Install OpenSSL

Check whether OpenSSL is installed by using the following command:

  • CentOS® and Red Hat® Enterprise Linux®

    The following output provides an example of what the command returns:

  • Debian® and the Ubuntu® operating system

    The following output provides an example of what the command returns:

If the preceding packages are not returned, install OpenSSL by running the following command:

  • CentOS and Red Hat

  • Debian and the Ubuntu operating system

Generate the RSA key

Generate a private key openssl key

Run the following commands to create a directory in which to store your RSA key, substituting a directory name of your choice:

Run the following command to generate a private key:

Create a CSR

Run the following command to create a CSR with the RSA private key (output is in Privacy-Enhanced Mail (PEM) format):

When prompted, enter the necessary information for creating a CSR by using the conventions shown in the following table.

Note: You cannot use the following characters in the Organization Name or Organizational Unit fields: < > ~ ! @ # $ % ^ * / ( ) ? . , &

FieldExplanationExample
Common NameThe fully qualified domain name to which the certificate applies. The domain names example.com and www.example.com are distinct from each other, so be sure to submit your request for the right domain. If you are purchasing a wildcard certificate, use *.example.com.example.com
Organization NameThe exact legal name of your organization. The Certificate Authority (CA) might seek to confirm that your organization is real and legally registered, so don’t abbreviate words that aren’t abbreviated in the organization’s legal name.Example Inc.
Organizational UnitThe branch of your organization that is making the request.Marketing
City/localityThe city where your organization is legally located. Do not abbreviate the city name.San Antonio
State/provinceThe state or province where your organization is legally located. Do not abbreviate the state or province name.Texas
Country/regionThe two-letter International Standards Organization (ISO) abbreviation for your country.US

Warning: Leave the challenge password blank (press Enter).

Verify your CSR

Run the following command to verify your CSR:

After you have verified your CSR, you can submit it to a CA to purchase an SSL certificate.

Windows IIS Manager

Use the following steps to generate a CSR by using Windows IIS Manager:

Note: The following steps are for IIS 8 or IIS 8.5 on Windows Server 2012.

  1. Open IIS Manager.
  2. In the left-hand Connections pane, click the server for which you want to generate a CSR.
  3. In the center server Home pane under the IIS section, double-click Server Certificates.
  4. In the right-hand Actions pane, click Create Certificate Request.
  5. In the Request Certificate wizard, on the Distinguished Name Properties page, enter the following information and then click Next.

    FieldExplanationExample
    Common NameThe fully qualified domain name to which the certificate applies. The domain names example.com and www.example.com are distinct from each other, so be sure to submit your request for the right domain. If you are purchasing a wildcard certificate, use *.example.com.example.com
    Organization NameThe exact legal name of your organization. The CA might seek to confirm that your organization is real and legally registered, so don’t abbreviate words that aren’t abbreviated in the organization’s legal name.Example Inc.
    Organizational UnitThe branch of your organization that is making the request.Marketing
    City/localityThe city where your organization is legally located. Do not abbreviate the city name.San Antonio
    State/provinceThe state or province where your organization is legally located. Do not abbreviate the state or province name.Texas
    Country/regionThe two-letter ISO abbreviation for your country.US
  6. On the Cryptographic Server Provider Properties page, enter the following information and then click Next.

    • Cryptographic service provider: Unless you have a specific cryptographic provider, use the default selection.
    • Bit length: 2048 is the recommended bit length.
  7. On the File Name page, enter the location where you want to save the certificate request file and then click Finish.

After you have generated the CSR, you can submit it to a CA to purchase an SSL certificate.

Cloud Control Panel

Rackspace provides the CSR Generator for generating a CSR. The CSR Generator shows you the CSRs that you currently have and lets you create new CSRs with a simple form. After you have entered your details, the generator combines them with your private key so that you can submit the combined encoded information to a CA.

When you are done with the generator, you can return to the Cloud Control Panel by clicking any of the links in the top navigation or by going to login.rackspace.com and selecting Rackspace Cloud from the drop-down product menu in the top navigation bar.

Access the CSR Generator

Access the CSR Generator directly or through the Control Panel by using the following steps:

  1. Log in to the Cloud Control Panel and select Rackspace Cloud from the drop-down product menu in the top navigation bar.
  2. In the top navigation bar, click Servers > Cloud Servers.
  3. Click the name of the server for which you want to generate a CSR.
  4. In the right-hand Managing Your Server section under Help me with, click Generate a CSR.

The generator lists your existing CSRs, if you have any, organized by domain name.

Generate a CSR

  1. Click Create CSR.

  2. Enter the following information, which will be associated with the CSR:

    FieldExplanationExample
    Domain NameThe fully qualified domain name to which the certificate applies. The domain names example.com and www.example.com are distinct from each other, so be sure to submit your request for the right domain. If you want to secure both domains, you can use the Alt Names field. If you are purchasing a wildcard certificate, use *.example.com.example.com
    Alt Names(Optional) Additional domains that you want to add to the request. Each CA treats these differently, and the CA might charge for additional names. You can submit a comma-separated list.www.example.com, secure.example.com
    Email Address(Optional) A contact email address for the certificate.[email protected]
    Organization NameThe exact legal name of your organization. The CA might seek to confirm that your organization is real and legally registered, so don’t abbreviate words that aren’t abbreviated in the organization’s legal name.Example Inc.
    Organizational Unit(Optional) The branch of your organization that is making the request.Marketing
    CityThe city where your organization is legally located. Do not abbreviate the city name.San Antonio
    State or ProvinceThe state or province where your organization is legally located. Do not abbreviate the state or province name.Texas
    CountryChoose your country from the drop-down menu. The two-letter ISO abbreviation for your country is included in the CSR.United States
    Private Key Bit LengthKey sizes smaller than 2048 are considered insecure and might not be accepted by a CA.1024,2048,4096
    Hashing AlgorithmBoth algorithms are currently trusted in mainstream browsers and offer industry recommended security. SHA-512 requires additional CPU processing.SHA-256, SHA-512

    Note: You cannot use the following characters in the Organization Name or Organizational Unit fields: < > ~ ! @ # $ % ^ * / ( ) ? . , &

  3. After you have entered all the required information, click Create CSR.

It can take between 5 and 60 seconds for the CSR to be generated. You might need to refresh the page that displays your CSRs before the new CSR is listed.

View CSR details

When CSR has been generated, you can click its UUID (unique identifier) in the CSR list to view its details screen.

This screen displays the information that you provided, the text of the CSR, and its associated private key.

Submit the CSR to the CA

The text in the Certificate Request field is the CSR. It contains encoded details of the CSR and your public key.

Openssl Key Pair

To request your SSL certificate, copy the Certificate Request text and submit it to your CA. Include all the text, including the BEGIN and END lines at the beginning and end of the text block.

Install the private key

Copy the private key to the server that will host the certificate. See your application documentation to determine where to install the private key and certificate on your server.

MyRackspace Portal

If you are a Managed or Dedicated customer, you can request a CSR through the MyRackspace Portal by using the following steps:

  1. Log in to the MyRackspace Portal and select Dedicated Hosting from the drop-down product menu in the top navigation bar.
  2. In the top navigation bar, click Tickets > Create Ticket.
  3. On the Tickets / Create New Ticket page, select Generate Certificate Signing Request (CSR) from the Subject drop-down list.
  4. Enter the following information in the Ticket Details section:

    FieldExplanationExample
    Device(s)The server or servers for which you want to generate a CSR. Use the drop-down menu to select your servers.
    Common NameThe fully qualified domain name to which the certificate applies. The domain names example.com and www.example.com are distinct from each other, so be sure to submit your request for the right domain. If you want to secure both domains, you can use the Alt Names field. If you are purchasing a wildcard certificate, use *.example.com.example.com
    Alt. Names(Optional) Additional domains that you want to add to the request. Each CA treats these differently, and the CA might charge for additional names. You can submit a comma-separated list.www.example.com, secure.example.com
    Email Address(Optional) A contact email address for the certificate.[email protected]
    OrganizationThe exact legal name of your organization. The CA might seek to confirm that your organization is real and legally registered, so don’t abbreviate words that aren’t abbreviated in the organization’s legal name.Example Inc.
    Organizational Unit(Optional) The branch of your organization that is making the request.Marketing
    Locality (City)The city where your organization is legally located. Do not abbreviate the city name.San Antonio
    State or Province NameThe state or province where your organization is legally located. Do not abbreviate the state or province name.Texas
    CountryChoose your country from the drop-down menu. The two-letter ISO abbreviation for your country is included in the CSR.United States

    Note: The bit length is automatically set to 2048.

  5. Click Create Ticket.

Next steps

Reference

Experience what Rackspace has to offer.

Openssl Generate Rsa Private Key

©2020 Rackspace US, Inc.

Openssl Generate Keypair

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License