Configure a PKCS#11 token
PKCS#11 is a programming interface to create and manipulate cryptographic tokens. PKCS#11 tokens are containers that hold digital certificates and keys.
Before you begin
Table 1 summarizes the required resource profile access for IBM® HTTP Server - Powered by Apache.
Resource Profile | Class | Web Server User ID |
---|---|---|
BPX.DAEMON | FACILITY | UPDATE |
BPX.SERVER | FACILITY | UPDATE |
CLEARKEY.TOKEN_NAME | CRYPTOZ | READ |
CSF1HMG | CSFSERV | READ |
CSF1GSK | CSFSERV | READ |
CSF1SKD | CSFSERV | READ |
CSF1SKE | CSFSERV | READ |
CSF1TRC | CSFSERV | READ |
CSF1TRL | CSFSERV | READ |
CSFIQA | CSFSERV | READ |
CSFOWH | CSFSERV | READ |
CSFRNG | CSFSERV | READ |
CSFRNGL | CSFSERV | READ |
IRR.DIGTCERT. LISTRING | FACILITY | READ UPDATE is needed if TLS is configured for the web server |
SO.TOKEN_NAME | CRYPTOZ | CONTROL |
USER.TOKEN_NAME | CRYPTOZ | UPDATE |
Note: If the web server is configured with SSL/TLS, the web server user ID
requires access to additional profiles, such as CSFDSG, CSF1DVK, CSF1GKP,
CSF1GAV, CSF1TRD, and CSFPKI. See IBM
HTTP Server Powered by Apache (https://publibz.boulder.ibm.com/epubs/pdf/dpr1cg00.pdf) for
information on configuring SSL/TLS for the web server.
For
example:
PERMIT CSFRNG CLASS(CSFSERV) ID(user-ID) ACC(READ)
SETROPTS RACLIST(CSFSERV) REFRESH
Note: If
you create CSF.CSFSERV.AUTH.CSFOWH.DISABLE or
CSF.CSFSERV.AUTH.CSFRNG.DISABLE profiles in the XFACILIT class, the respective
SAF checks are disabled, even if the CSFSERV class profiles exist.
See Configuring CSFSERV Resource Profiles for additional resource profile settings when the ICSF CHECKAUTH(YES) parameter is set.
About this task
This procedure summarizes the steps to create a PKCS#11 token for your convenience. See z/OS Cryptographic Services ICSF Administrator's Guide for complete information.
See the introductory chapter of z/OS Cryptographic Services ICSF Writing PKCS #11 Applications for token access information and guidelines.
Access to PKCS #11 tokens in ICSF is controlled by the CRYPTOZ class, with different access
levels as well as a differentiation between standard users and security officers. For each token,
there are two resources in the CRYPTOZ class for controlling access to tokens:
- The resource USER.token-name controls the access of the User role to the token.
- The resource SO.token-name controls the access of the Security Officer (SO) role to the token.
You create the PKCS#11 token to be used by the IBM HTTP Server - Powered by Apache web server using RACDCERT ADDTOKEN. The token
name you specify in this procedure must match the token name you subsequently specify in your
httpd.conf file and other configuration files included in the
configuration.
Note: The PKCS#11 tokens configured for use by IBM HTTP Server - Powered by Apache should not be used for any other purpose including, being
referenced in any of the factor settings configured by running the AZFEXEC exec.
Important: Troubleshooting IBM MFA
CRYPTOZ access problems can be difficult if a governing profile does not exist. Under some
circumstances, such as when the user ID of the web server started task does not have access to one
or more of the profiles in the CRYPTOZ class because the profile does not exist, ICSF can deny a
request without issuing an informative ICHnumber error message, leaving only the
reason code for guidance.
It is recommended that you create a governing CRYPTOZ class profile
with a value of
**
with a UACC of NONE. In the absence of a profile that permits
access, this restrictive profile causes a message to be output so that you can determine the missing
RACF® profile.
RDEFINE CRYPTOZ SO.** UACC(NONE)
RDEFINE CRYPTOZ USER.** UACC(NONE)