From 86e28fd1d99f5d43c15069061b716c636931d3e7 Mon Sep 17 00:00:00 2001 From: Chris Masone Date: Tue, 27 Apr 2010 11:06:12 -0700 Subject: [PATCH] Generate testing certs on the fly Review URL: http://codereview.chromium.org/1701016 --- mod_for_test_scripts/710enableAuthTesting | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/mod_for_test_scripts/710enableAuthTesting b/mod_for_test_scripts/710enableAuthTesting index b623b0902b..c24ce69a67 100755 --- a/mod_for_test_scripts/710enableAuthTesting +++ b/mod_for_test_scripts/710enableAuthTesting @@ -6,24 +6,29 @@ echo "Adding mock Google Accounts server certs." -# TODO(cmasone): Generate certs/keys on the fly from a CSR? -CERT_DIR="${GCLIENT_ROOT}/src/platform/login_manager" CERT_NAME="mock_server" FAKE_CA_DIR="${ROOT_FS_DIR}/etc/fake_root_ca" FAKE_NSSDB="${FAKE_CA_DIR}/nssdb" +TMP_KEY=$(mktemp -p /tmp "${CERT_NAME}.key.XXXXX") +TMP_CERT=$(mktemp -p /tmp "${CERT_NAME}.pem.XXXXX") -mkdir -p "${FAKE_NSSDB}" -cat "${CERT_DIR}/${CERT_NAME}.key" > "${FAKE_CA_DIR}/${CERT_NAME}.key" +# Generate testing root cert on the fly. +openssl req -x509 -nodes -days 365 \ + -subj "/CN=*.google.com" \ + -newkey rsa:1024 -keyout "${TMP_KEY}" -out "${TMP_CERT}" + +mkdir -m 0755 -p "${FAKE_NSSDB}" +cp "${TMP_KEY}" "${FAKE_CA_DIR}/${CERT_NAME}.key" echo "DO NOT MOVE THIS DATA OFF OF THE ROOTFS!" > "${FAKE_CA_DIR}/README" -nsscertutil -A -n FakeCA -t "C,C,C" -a -i "${CERT_DIR}/${CERT_NAME}.pem" \ - -d "${FAKE_NSSDB}" -chmod -R 0644 "${FAKE_NSSDB}" +nsscertutil -A -n FakeCA -t "C,C,C" -a -i "${TMP_CERT}" -d "${FAKE_NSSDB}" +chmod 0644 "${FAKE_NSSDB}"/* +cp "${TMP_CERT}" "${FAKE_CA_DIR}/${CERT_NAME}.pem" # TODO(cmasone): get rid of this once we're off pam_google for good. # Sadly, our fake cert HAS to be first in this file. TMPFILE=$(mktemp) CERT_FILE="${ROOT_FS_DIR}/etc/login_trust_root.pem" PERMS=$(stat --printf="%a" "${CERT_FILE}") -cat "${CERT_DIR}/${CERT_NAME}.pem" "${CERT_FILE}" > "${TMPFILE}" +cat "${TMP_CERT}" "${CERT_FILE}" > "${TMPFILE}" mv -f "${TMPFILE}" "${CERT_FILE}" chmod "${PERMS}" "${CERT_FILE}"