|
Purpose Use
the RACDCERT REKEY command to replicate (rekey) a digital certificate
with a new public/private key pair. In general, after you rekey a
certificate, issue the RACDCERT ROLLOVER command to supersede the
old certificate with the new rekeyed certificate and retire the old
private key. For sample procedures, see "Renewing a certificate
with a new private key (rekeying)" in z/OS Security Server RACF Security Administrator's Guide.
During
rekeying, the subject's distinguished name, key usage, and subject
alternate name are copied from the original certificate to the replicated
certificate. The replicated certificate is then self-signed and stored
as a new certificate associated with the same user ID, CERTAUTH, or
SITE. The original certificate is not changed by this operation.
If
the rekeyed certificate needs to be signed by another certificate
in RACF® or another certificate
authority, issue the RACDCERT GENREQ command to create a PKCS #10
request from the replicated certificate. Use the resulting request
as input to RACDCERT GENCERT to sign the replicated certificate with
another certificate in RACF or
sent to the external certificate authority for fulfillment. Perform
signing (if needed) before issuing the RACDCERT ROLLOVER command.
Use
the RACDCERT GENCERT command instead of REKEY when you want to change
the subject's distinguished name or supported extensions in addition
to creating a new key pair.
See UTF-8 and BMP character restrictions for information about how UTF-8 and BMP characters in certificate
names and labels are processed by RACDCERT functions.
Issuing options The following table identifies
the eligible options for issuing the RACDCERT REKEY command: As a RACF TSO command? |
As a RACF operator command? |
With command direction? |
With automatic command direction? |
From the RACF parameter library? |
---|
Yes |
No |
No. (See rules.) |
No. (See rules.) |
No |
Rules: The
following rules apply when issuing this command. - The RACDCERT command cannot be directed to a remote system using
the AT or ONLYAT keyword.
- The updates made to the RACF database
by RACDCERT are eligible for propagation with automatic direction
of application updates based on the RRSFDATA profiles AUTODIRECT.target-node.DIGTCERT.APPL
and AUTODIRECT.target-node.DIGTRING.APPL,
where target-node is the remote node to
which the update is to be propagated.
|
Authorization required To
issue the RACDCERT REKEY command, you must have the SPECIAL attribute
or sufficient authority to the IRR.DIGTCERT.REKEY resource in the
FACILITY class for your intended purpose, as shown in Table 1.
When your installation
controls access to ICSF services and the CSFSERV class is active,
additional access to CSFSERV resources might be required as follows: - When you specify RSA(PKDS) or PCICC, you must have READ authority
to the CSFDSG, CSFIQF, CSFPKG, CSFPKRC, and CSFPKX resources.
- When you specify RSA(TOKEN(token-name)), you must have
READ authority to the CSF1GAV, CSF1GKP, CSF1TRD, CSFDSG, and CSFIQF
resources.
- When you specify RSA and omit PKDS or TOKEN, you must
have READ authority to the CSFIQF resource.
- When you specify ICSF, you must have READ authority to the CSFIQF,
CSFPKI, and CSFPKRC resources.
- When you specify NISTECC(PKDS) or BPECC(PKDS), you must have READ
access to the CSFDSG, CSFDSV, CSFOWH, CSFPKG, CSFPKRC, and CSFPKX
resources.
- When you specify NISTECC(TOKEN(token-name)) or BPECC(TOKEN(token-name)),
you must have READ access to the CSF1GAV, CSF1GKP, CSF1PKV, CSF1TRC,
CSF1TRD, CSFDSG, and CSFOWH resources.
- When you specify NISTECC or BPECC and omit PKDS or
TOKEN, you must have READ access to the CSF1GAV, CSF1GKP, CSF1PKS,
CSF1PKV, CSF1TRC, CSF1TRD, and CSFOWH resources.
- When you omit key type, RACF rekeys the private key using with
the characteristics of the original key, including how it is stored.
Therefore, you must have access authority to the appropriate resources
based on the characteristics of the original key even when you omit
the key types shown in this list.
For details about the CSFSERV resources, see z/OS Cryptographic Services ICSF Administrator's Guide.
Table 1. Authority required for the RACDCERT REKEY functionIRR.DIGTCERT.REKEY |
---|
Access level |
Purpose |
---|
READ |
Rekey your own certificate. |
UPDATE |
Rekey another user's certificate. |
CONTROL |
Rekey a SITE or CERTAUTH certificate. |
Activating your changes If the DIGTCERT
class is RACLISTed, refresh the class to activate your changes.
Example: SETROPTS RACLIST(DIGTCERT) REFRESH
Syntax For the key to
the symbols used in the command syntax diagrams, see Syntax of RACF commands and operands. The complete syntax of the RACDCERT
REKEY command is:
|
---|
RACDCERT REKEY(LABEL('existing-label-name')) |
[ ID(certificate-owner) | SITE | CERTAUTH ]
[ SIZE(key-size) ]
[ NOTBEFORE( [ DATE(yyyy-mm-dd) ] [ TIME(hh:mm:ss) ] ) ]
[ NOTAFTER( [ DATE(yyyy-mm-dd) ] [ TIME(hh:mm:ss) ] ) ] [ { RSA [ (PKDS [ (pkds-label | * ) ] | TOKEN(token-name) ) ] | NISTECC [ (PKDS [ (pkds-label | * ) ] | TOKEN(token-name) ) ] | BPECC [ (PKDS [ (pkds-label | * ) ] | TOKEN(token-name) ) ]
| PCICC [ (pkds-label | * ) ]
| ICSF [ (pkds-label | * ) ] } ]
[ WITHLABEL('to-be-created-label-name') ]
|
If you specify more than one RACDCERT function, only
the last specified function is processed. Extraneous keywords that
are not related to the function being performed are ignored.
If you do not specify a RACDCERT function, LIST is
the default function.
For information on issuing this command as a RACF TSO command, refer to RACF TSO commands.
Parameters - REKEY(LABEL('existing-label-name'))
-
Specifies
the label of the existing certificate to be replicated during RACDCERT
REKEY processing. This keyword is required and identities an existing
certificate owned by ID(certificate-owner),
SITE, or CERTAUTH. The certificate identified by the LABEL keyword
must be associated with the must have a private key associated
with it otherwise an error message is issued and the command ends.
If the private key associated with the certificate
is an ECC key, the ICSF subsystem must be operational and
configured for PKCS #11 operations.
Restriction: When
ICSF is operating in FIPS mode, you cannot rekey a certificate that
has an associated Brainpool ECC private key.
- ID(certificate-owner)
| SITE | CERTAUTH
- Specifies that the certificate to replicate is either a user certificate
associated with the specified user ID, a site certificate, or a certificate-authority
certificate. If you do not specify ID, SITE, or CERTAUTH, the default
is ID, and certificate-owner defaults to
the user ID of the command issuer. If more than one keyword is specified,
the last specified keyword is processed and the others are ignored
by TSO command parse processing.
- SIZE(key-size)
- Specifies
the size of the new private key expressed in decimal bits.
If
SIZE is omitted, it defaults to the size of the private key associated
with the original certificate.
For NISTECC keys, valid key sizes are 192, 224, 256,
384, and 521 bits. For BPECC keys, valid key sizes are 160, 192, 224,
256, 320, 384, and 512 bits.
For DSA keys, the minimum key size
is 512.
For RSA keys, the minimum key size
for clear keys and secure keys in the PKDS (PKA key data set) is
512; the minimum key size for secure keys in the TKDS (token key data
set) is 1024 and the size must be a multiple of 256.
- The maximum key size for RSA and DSA keys is determined by United
States export regulations and is controlled by RACF and non-RACF code in z/OS. Depending
on the installation, non-RACF code may enforce a lower maximum size.
- Rounding up to the next appropriate key size might occur. Therefore,
the key size of the generated key might be longer than the value you
specify with SIZE but the generated key is never shorter than requested.
Maximum key sizes: The maximum key size for
a private key depends on key type, as follows: Private key type |
Maximum key size |
---|
RSA key stored in the RACF database |
4096 bits |
RSA key stored in the ICSF PKDS as a CRT key
token |
4096 bits |
RSA key stored in the ICSF PKDS as an ME key
token |
1024 bits |
NISTECC key |
521 bits |
BPECC key |
512 bits |
Note: To
generate an RSA key that is longer than 1024 bits and is to be stored
in the RACF database, the CP Assist for Cryptographic Function (CPACF)
must be enabled.
Standard RSA key sizes: Currently,
standard key sizes for RSA keys are as follows:
Key size |
Key strength |
---|
512 bits |
Low-strength key |
1024 bits |
Medium-strength key |
2048 bits |
High-strength key |
4096 bits |
Very high-strength key |
Key strength considerations: Shorter keys of
the ECC type, which are generated when you specify NISTECC or BPECC,
achieve comparable key strengths when compared with longer RSA keys.
RSA, NISTECC, and BPECC keys of the following sizes
are comparable in strength: RSA key size |
NISTECC key size |
BPECC key size |
---|
1024 bits |
192 bits |
160 or 192 bits |
2048 bits |
224 bits |
224 bits |
3072 bits |
256 bits |
256 or 320 bits |
7680 bits |
384 bits |
384 bits |
15360 bits |
521 bits |
512 bits |
Hashing algorithm used for signing: RACF signs
certificates using a set of secure hash algorithms based on the SHA-1
or SHA-2 hash functions. When the signing key is a DSA type, the SHA-1
algorithm is used for keys of all sizes. When the signing key is an
RSA, NISTECC, or BPECC type, the size of the signing key determines
the hashing algorithm used for signing, as follows: Hashing algorithm
used for signing
|
Signing key
size |
---|
RSA |
NISTECC |
BPECC |
---|
SHA-1 |
Less than 2048 bits |
— |
— |
SHA-256 |
2048 bits or
longer
|
192, 224,
or 256 bits
|
160, 192, 224,
256, or 320 bits
|
SHA-384 |
— |
384 bits |
384 bits |
SHA-512 |
— |
521 bits |
512 bits |
- NOTBEFORE(DATE(yyyy-mm-dd)
TIME(hh:mm:ss))
- Specifies
the local date and time from which the certificate is valid. If DATE
is not specified, it defaults to the current local date. If TIME is
not specified, it defaults to TIME(00:00:00).
If DATE is specified,
the value of yyyy must be 1950 - 9997.
Note
that the use of the date format yyyy-mm-dd is
valid. However, to aid installations familiar with the RACF date format, the value can be specified
in the format yyyy/mm/dd.
The time
and date values are stored in the certificate as a universal time
coordinated (UTC) value. The calculated UTC value might be incorrect
if the date and time values for NOTBEFORE and NOTAFTER represent a
time that has a different local offset from UTC.
- NOTAFTER(DATE(yyyy-mm-dd)
TIME(hh:mm:ss))
- Specifies
the local date and time after which the certificate is no longer valid.
If DATE is not specified, it defaults to one year from the NOTBEFORE
date value. If TIME is not specified, it defaults to TIME(23:59:59).
If DATE is specified, the value of yyyy must
be 1950 - 9997.
If DATE is defaulted, the value must be 1951 - 9998.
The
NOTBEFORE value must be earlier than the NOTAFTER value or an informational
message is issued.
Note the use of the date format yyyy-mm-dd is
valid. However, to aid installations familiar with the RACF date format, the value can be specified
as yyyy/mm/dd.
The time and date
values are stored in the certificate as a universal time coordinated
(UTC) value. The calculated UTC value might be incorrect if the date
and time values for NOTBEFORE and NOTAFTER represent a time that has
a different local offset from UTC.
- RSA
| PCICC | ICSF | NISTECC | BPECC
- Specifies
how RACF should generate the
new key pair and how the private key should be stored for
future use.
When you omit the RSA, PCICC, ICSF, NISTECC, and BPECC
operands, RACF rekeys using the key type and key size of the private
key associated with the original certificate. The new key will have
all the characteristics of the original key, including how it is stored.
For example, if the original key is stored in the ICSF PKDS, the new
key is also stored in the PKDS but with a new system-generated key
label.
To specify a PKDS label for the new key, you must specify
key type with the PKDS suboperand and a pkds-label value or
an asterisk (*). When you specify PKDS with a pkds-label value,
the new key is stored in the PKDS (if all required conditions are
met) regardless of whether the original key was stored in the PKDS.
Conversely, if the original key is stored in PKDS and you specify
key type without the PKDS suboperand, the new key is not stored in
the PKDS unless the following condition occurs. When the specified
key type is incompatible with the original key, the key-type keyword
is ignored. (For example, you cannot specify BPECC to rekey a certificate
with an RSA key.) If the key-type operand is ignored, the new key
is stored in the PKDS if the original key was stored in the PKDS.
For
details about specifying or allowing RACF to generate the PKDS label,
see PKDS label considerations.
For the hardware requirements
for storing or accessing a key in the ICSF PKA key data set (PKDS), see Hardware requirements.
- RSA
- Specifies that the key pair is to be generated using software
with the RSA algorithm and the private key is to be stored in the RACF database as an RSA key.
When
you specify RSA without the PKDS option, the CP Assist for Cryptographic
Function (CPACF) must be enabled to generate a key that is longer
than 1024 bits.
- PKDS[(pkds-label | *)]
- Specifies that the key pair is to be generated using a CCA cryptographic coprocessor. The resulting private
key is generated with the RSA algorithm and stored in the ICSF PKA
key data set (PKDS) as an RSA Chinese Remainder Theorem (CRT) key
token with either a system-generated label, a label
specified by pkds-label, or a label copied
from the certificate label.
- TOKEN(token-name)
- Specifies that the key pair is to be generated using an Enterprise
PKCS#11 cryptographic coprocessor. The resulting private key is stored
in the specified existing token-name token in the ICSF token key data
set (TKDS) as an RSA Chinese Remainder Theorem (CRT) key token.
- PCICC[(pkds-label | *)]
- Specifies the same function as the PKDS suboperand of the RSA
operand. See the RSA operand of REKEY for details.
- ICSF[(pkds-label | *)]
- Specifies that the key pair is to be generated using software.
The resulting private key is generated with the RSA algorithm and
stored in the ICSF PKA key data set (PKDS) as an RSA Modulus-Exponent
(ME) key token.
- NISTECC
- Specifies that the key pair is to be generated using software , if clear key is not restricted in the system, with
the elliptic curve cryptography (ECC) algorithm in accordance with
the standard proposed by the National Institute of Standards and Technology
(NIST). The resulting private key is stored in the RACF database as
an ECC key.
You can specify NISTECC to rekey only an ECC key pair.
When specifying NISTECC, the ICSF subsystem must
be operational and configured for PKCS #11 operations.
- PKDS[(pkds-label | *)]
- Specifies that the key pair is to be generated using a CCA cryptographic coprocessor. The resulting
private key is stored in the ICSF PKA data set (PKDS) as an ECC key
in the PKA token with either a system-generated label, a label specified
by pkds-label, or a label copied from the certificate label.
- TOKEN(token-name)
- Specifies that the key pair is to be generated using an Enterprise
PKCS#11 cryptographic coprocessor. The resulting private key is
stored in the specified existing token-name token in the ICSF token
key data set (TKDS).
- BPECC
- Specifies that the key pair is to be generated using software, if clear key is not restricted in the system, with
the elliptic curve cryptography (ECC) algorithm in accordance with
the standard proposed by the ECC Brainpool working group of the
Internet Engineering Task Force (IETF). The resulting private key
is stored in the RACF database as an ECC key.
You can specify BPECC
to rekey only an ECC key pair.
When specifying BPECC, the ICSF subsystem must be operational
and configured for PKCS #11 operations.
Restriction: When
ICSF is operating in FIPS mode, you cannot generate a Brainpool
ECC key.
- PKDS[(pkds-label | *)]
- Specifies that the key pair is to be generated using a CCA cryptographic coprocessor. The resulting
private key is stored in the ICSF PKA data set (PKDS) as an ECC key
in the PKA token with either a system-generated label, a label specified
by pkds-label, or a label copied from the certificate label.
- TOKEN(token-name)
- Specifies that the key pair is to be generated using an Enterprise
PKCS#11 cryptographic coprocessor. The resulting private key is
stored in the specified existing token-name token in the ICSF token
key data set (TKDS).
- WITHLABEL('to-be-created-label-name')
- Specifies
the label assigned to the new certificate. If specified, this must
be unique to the user ID with which the certificate is associated.
If not specified, it defaults in the same manner as the WITHLABEL
keyword on the RACDCERT ADD command.
The label-name value
is stripped of leading and trailing blanks. If a single quotation
mark is intended to be part of the label-name,
use two single quotation marks together for each single quotation
mark within the string, and enclose the entire string within single
quotation marks.
See the WITHLABEL keyword for RACDCERT ADD
for information on label rules.
Examples
|
|
|
---|
Example 1 |
Operation |
User RACFADM has an expiring CERTAUTH certificate
labeled 'Local PKI CA' and wants to renew it and
rekey the private key. The new, rekeyed certificate will be labeled 'Local
PKI CA-2'. The PCI cryptographic coprocessor will to be used
to generate the new key pair. The size of the new private key will
be 1024 bits (RACF default
size). After issuing the RACDCERT REKEY command, the user RACFADM
will issue the RACDCERT ROLLOVER command to retire and replace the
expiring certificate. |
Known |
User RACFADM has CONTROL access to the IRR.DIGTCERT.REKEY
resource in the FACILITY class. |
Command |
RACDCERT REKEY(LABEL(’Local PKI CA’))
CERTAUTH
WITHLABEL(’Local PKI CA-2’)
RSA(PKDS)
|
Output |
None. |
|