Table of Contents
- A.1. Create users
- A.2. Run the setup script
- A.2.1. 2.1 Configure the subject name
- A.2.2. Configure the CA's email
- A.2.3. Configure the expiration date
- A.2.4. Enter a passphrase
- A.2.5. Confirm generated certificate
- A.2.6. Complete setup of GSI
- A.3. Host certificates
- A.3.1. 3.1 Request a host certificate
- A.3.2. Sign the host certificate
- A.4. User certificates
- A.4.1. Request a user certificate
- A.4.2. Sign the user certificate
- A.5. Verify the SimpleCA certificate installation
- A.6. Configure SimpleCA for multiple machines
The following are instructions for how to use SimpleCA to set up certificates for a GT 3.9.5 installation.
SimpleCA provides a wrapper around the OpenSSL CA functionality and is sufficient for simple Grid services. Alternatively, you can use OpenSSL's CA.sh command on its own. SimpleCA is suitable for testing or when a certificate authority (CA) is not available. You can find other CA options in Section 5.2.
Make sure you have the following users on your machine:
- Your user account, which will be used to run the client programs.
- A generic globus account, which will be used to perform administrative tasks such as starting and stopping the container, deploying services, etc. This user will also be in charge of managing the SimpleCA. To do this, make sure this account has read and write permissions in the $GLOBUS_LOCATION directory.
A script was installed to set up a new SimpleCA. You only need to run this script once per Grid.
Run the setup script:
$GLOBUS_LOCATION/setup/globus/setup-simple-ca
This script prompts you for information about the CA you wish to create:
The unique subject name for this CA is: cn=Globus Simple CA, ou=simpleCA-mayed.mcs.anl.gov, ou=GlobusTest, o=Grid Do you want to keep this as the CA subject (y/n) [y]:
where:
Table A.1. CA Name components
| cn | Represents "common name". Identifies this particular certificate as the CA certificate within the "GlobusTest/simpleCA-hostname" domain, which in this case is Globus Simple CA. |
| ou | Represents "organizational unit". Identifies this CA from other CAs created by SimpleCA by other people. The second "ou" is specific to your hostname (in this cases GlobusTest). |
| o | Represents "organization". Identifies the Grid. |
Press y to keep the default subject name (recommended).
The next prompt looks like:
Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA):
Enter the email address where you intend to receive certificate requests. It should be your real email address that you check, not the address of the globus user.
Then you'll see:
The CA certificate has an expiration date. Keep in mind that once the CA certificate has expired, all the certificates signed by that CA become invalid. A CA should regenerate the CA certificate and start re-issuing ca-setup packages before the actual CA certificate expires. This can be done by re-running this setup script. Enter the number of DAYS the CA certificate should last before it expires. [default: 5 years (1825 days)]:
This is the number of days for which the CA certificate is valid. Once this time expires, the CA certificate will have to be recreated, and all of its certificates regranted.
Accept the default (recommended).
Next you'll see:
Generating a 1024 bit RSA private key ........++++++ ................++++++ writing new private key to '/home/globus/.globus/simpleCA//private/cakey.pem' Enter PEM pass phrase:
The passphrase of the CA certificate will be used only when signing certificates (with grid-cert-sign). It should be hard to guess, as its compromise may compromise all the certificates signed by the CA.
Enter your passphrase.
![]() | Important: |
|---|---|
Your passphrase must not contain any spaces. | |
Finally you'll see the following:
A self-signed certificate has been generated for the Certificate Authority with the subject: /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/CN=Globus Simple CA If this is invalid, rerun this script setup/globus/setup-simple-ca and enter the appropriate fields. ------------------------------------------------------------------- The private key of the CA is stored in /home/globus/.globus/simpleCA//private/cak ey.pem The public CA certificate is stored in /home/globus/.globus/simpleCA//cacert.pem The distribution package built for this CA is stored in /home/globus/.globus/simpleCA//globus_simple_ca_68ea3306_setup-0.17.tar.gz
This information will be important for setting up other machines in your grid. The number 68ea3306 in the last line is known as your CA hash. It will be an 8 hexadecimal digit string.
Press any key to acknowledge this screen.
Your CA setup package finishes installing and ends the procedure with the following reminder:
*************************************************************************** Note: To complete setup of the GSI software you need to run the following script as root to configure your security configuration directory: /opt/gt4/setup/globus_simple_ca_68ea3306_setup/setup-gsi For further information on using the setup-gsi script, use the -help option. The -default option sets this security configuration to be the default, and -nonroot can be used on systems where root access is not available. *************************************************************************** setup-ssl-utils: Complete
We'll run the setup-gsi script in the next section. For now, just notice that it refers to your $GLOBUS_LOCATION and the CA Hash from the last message.
To finish the setup of GSI, we'll run the script noted in the previous step.
Run the following as root (or, if no root privileges are available, add the -nonroot option to the command line):
$GLOBUS_LOCATION/setup/globus_simple_ca_CA_Hash_setup/setup-gsi -default
The output should look like:
setup-gsi: Configuring GSI security Installing /etc/grid-security/certificates//grid-security.conf.CA_Hash... Running grid-security-config... Installing Globus CA certificate into trusted CA certificate directory... Installing Globus CA signing policy into trusted CA certificate directory... setup-gsi: Complete
You must request and sign a host certificate and then copy it into the appropriate directory for secure services. The certificate must be for a machine which has a consistent name in DNS; you should not run it on a computer using DHCP where a different name could be assigned to your computer.
As root, run:
grid-cert-request -host 'hostname'
This creates the following files:
- /etc/grid-security/hostkey.pem
- /etc/grid-security/hostcert_request.pem
- (an empty) /etc/grid-security/hostcert.pem
Note: If you are using your own CA, follow their instructions about creating a hostcert (one which has a commonName (CN) of your hostname), then place the cert and key in the /etc/grid-security/ location. You may then proceed to Section A.4.
As globus, run:
grid-ca-sign -in hostcert_request.pem -out hostsigned.pem
- A signed host certificate, named hostsigned.pem is written to the current directory.
- When prompted for a passphrase, enter the one you specified in Section A.2.4 (for the private key of the CA certificate.)
- As root, move the signed host certificate to /etc/grid-security/hostcert.pem.
The certificate should be owned by root, and read-only for other users.
The key should be read-only by root.
Users also must request user certificates, which you will sign using the globus user.
As your normal user account (not globus), run:
grid-cert-request
After you enter a passphrase, this creates
- ~$USER/.globus/usercert.pem (empty)
- ~$USER/.globus/userkey.pem
- ~$USER/.globus/usercert_request.pem
Email the usercert_request.pem file to the SimpleCA maintainer.
As the SimpleCA owner globus, run:
grid-ca-sign -in usercert_request.pem -out signed.pem
- When prompted for a password, enter the one you specified in Section A.2.4 (for the private key of the CA certificate).
- Now send the signed copy (signed.pem) back to the user who requested the certificate.
- As your normal user account (not globus), copy the signed user certificate into >~/.globus/ and rename it as usercert.pem, thus replacing the empty file.
The certificate should be owned by the user, and read-only for other users.
The key should be read-only by the owner.
To verify that the SimpleCA certificate is installed in /etc/grid-security/certificates and that your certificate is in place with the correct permissions, run:
user$ grid-proxy-init -debug -verify
After entering your passphrase, successful output looks like:
[bacon@mayed schedulers]$ grid-proxy-init -debug -verify User Cert File: /home/user/.globus/usercert.pem User Key File: /home/user/.globus/userkey.pem Trusted CA Cert Dir: /etc/grid-security/certificates Output File: /tmp/x509up_u1817 Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/OU=mcs.anl.gov/CN=User Name Enter GRID pass phrase for this identity: Creating proxy ..............................++++++++++++ ...............++++++++++++ Done Proxy Verify OK Your proxy is valid until: Sat Mar 20 03:01:46 2004
So far , you have a single machine configured with SimpleCA certificates. Recall that in Section A.2.6 a CA setup package was created in .globus/simpleCA/globus_simple_ca_HASH_setup-0.17.tar.gz. If you want to use your certificates on another machine, you must install that CA setup package on that machine.
To install it, copy that package to the second machine and run:
$GLOBUS_LOCATION/sbin/gpt-build globus_simple_ca_HASH_setup-0.17.tar.gz gcc32dbg
Then you will have to perform setup-gsi -default from Section A.3.2.
If you are going to run services on the second host, it will need its own Section A.3 and grid-mapfile (as described in the basic configuration instructions in Section 5.4).
You may re-use your user certificates on the new host. You will need to copy the requests to the host where the SimpleCA was first installed in order to sign them.
