Skip to content

Commit 29b0ccb

Browse files
committed
Drop the pk12util usage
1 parent 09d5881 commit 29b0ccb

File tree

1 file changed

+16
-38
lines changed

1 file changed

+16
-38
lines changed

.github/workflows/nss-cmsutil-test.yml

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ jobs:
209209
# Generate a test certificate and key
210210
echo "2. Generating CA and user certificates:"
211211
212-
# Step 1: Create a CA certificate
212+
# Step 1: Create a CA certificate using OpenSSL
213213
echo " Creating CA certificate..."
214214
cat > ca-openssl.conf << 'CAEOF'
215215
[req]
@@ -236,32 +236,18 @@ jobs:
236236
# Import CA certificate into NSS database
237237
certutil -A -n "TestCA" -i ca-cert.pem -t "CT,C,C" -d /nss-test/nssdb
238238
239-
# Step 2: Create user certificate signed by CA
240-
echo " Creating user certificate signed by CA..."
241-
cat > user-openssl.conf << 'USEREOF'
242-
[req]
243-
distinguished_name = req_distinguished_name
244-
prompt = no
245-
246-
[req_distinguished_name]
247-
CN = Test User
248-
O = NSS Test
249-
C = US
250-
emailAddress = test@example.com
251-
252-
[v3_user]
253-
keyUsage = critical, digitalSignature, keyEncipherment
254-
extendedKeyUsage = critical, emailProtection
255-
basicConstraints = critical, CA:false
256-
subjectKeyIdentifier = hash
257-
subjectAltName = email:test@example.com
258-
USEREOF
259-
260-
# Create user certificate request (without authority key identifier)
261-
openssl req -new -newkey rsa:2048 -keyout user-key.pem -out user-req.pem -nodes \
262-
-config user-openssl.conf
263-
264-
# Create signing config with authority key identifier
239+
# Step 2: Generate user certificate and key pair directly in NSS
240+
echo " Generating user certificate and key pair in NSS database..."
241+
242+
# Create random seed for key generation
243+
dd if=/dev/urandom of=noise.bin bs=20 count=1 2>/dev/null
244+
245+
# Generate certificate request with key pair
246+
printf '\n\n' | certutil -R -s "CN=Test User,O=NSS Test,C=US" \
247+
-o user-req.pem -d /nss-test/nssdb -z noise.bin
248+
249+
# Sign the certificate request with CA
250+
echo " Signing user certificate with CA..."
265251
cat > signing.conf << 'SIGNEOF'
266252
[v3_user_sign]
267253
keyUsage = critical, digitalSignature, keyEncipherment
@@ -272,20 +258,12 @@ jobs:
272258
subjectAltName = email:test@example.com
273259
SIGNEOF
274260
275-
# Sign user certificate with CA
276261
openssl x509 -req -in user-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial \
277262
-out user-cert.pem -days 365 -extensions v3_user_sign -extfile signing.conf
278263
279-
# Convert user certificate to PKCS#12 format
280-
openssl pkcs12 -export -in user-cert.pem -inkey user-key.pem -out user-cert.p12 \
281-
-name "testcert" -passout pass:
282-
283-
# Import user certificate into NSS database
284-
echo " Importing user certificate into NSS database..."
285-
pk12util -i user-cert.p12 -d /nss-test/nssdb -W ""
286-
287-
# Set proper trust attributes
288-
certutil -M -n "testcert" -t "u,u,u" -d /nss-test/nssdb
264+
# Import the signed certificate back into NSS database
265+
echo " Importing signed user certificate..."
266+
certutil -A -n "testcert" -i user-cert.pem -t "u,u,u" -d /nss-test/nssdb
289267
290268
echo " ✓ CA and user certificates created successfully"
291269

0 commit comments

Comments
 (0)