function generate_certs() { host=${1} cert_location=${2} rootCertificate="${cert_location}/custom-snakeoil-rootCA.crt" rootCertKey="${cert_location}/custom-snakeoil-rootCA.key" extensionFile="${cert_location}/${host}-snakeoil.ext" keyFile="${cert_location}/${host}-snakeoil.key" csrFile="${cert_location}/${host}-snakeoil.csr" crtAltSubFile="${cert_location}/${host}-snakeoil.crt" cat << EOF > ${extensionFile} authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE subjectAltName = @alt_names [alt_names] DNS.1 = ${host} DNS.2 = localhost EOF # Create CSR openssl req -newkey rsa:2048 -nodes -keyout ${keyFile} \ -out ${csrFile} -subj "/CN=${host}" -addext "subjectAltName=DNS:localhost" # Sign Our CSR with the root CA cert openssl x509 -req -CA ${rootCertificate} \ -CAkey ${rootCertKey} \ -in ${csrFile} \ -out ${crtAltSubFile} \ -days 3650 -CAcreateserial -extfile ${extensionFile} }