Last active
July 12, 2019 13:52
-
-
Save oldengremlin/6a6e7b2e580956791d9f75b1a07699e4 to your computer and use it in GitHub Desktop.
sslgen-cnf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
DAYS=9131 | |
SSLDIR=/etc/ssl | |
PRIVATE=${SSLDIR}/private; #mkdir -p ${PRIVATE} | |
PUBLIC=${SSLDIR}/certs; #mkdir -p ${PUBLIC} | |
SSLGRP=ssl-cert | |
# Генеруємо свій корньовий сертифікат | |
ROOTCA=RootCA-OldenGremlin | |
ROOTCA_CONF=/etc/ssl/${ROOTCA}.conf | |
ROOT_KEY=${PRIVATE}/${ROOTCA}.key | |
ROOT_CRT=${PUBLIC}/${ROOTCA}.pem | |
test -f ${ROOT_KEY} || test -f ${ROOT_CRT} || ( | |
# Формуємо корньовий закритий ключ | |
openssl genrsa -out ${ROOT_KEY} 4096 | |
# Формуємо корньовий сертифікат | |
openssl req -x509 -new -nodes -sha256 -config ${ROOTCA_CONF} -key ${ROOT_KEY} -sha256 -days ${DAYS} -out ${ROOT_CRT} | |
chgrp ${SSLGRP} ${ROOT_KEY} | |
) | |
for FCNF in $( find /etc/ssl -name '*.cnf' -type f -print | egrep -v '/openssl.cnf$' ); do | |
CNF=$( basename -z ${FCNF} ) | |
NF=$( basename -z ${FCNF} .cnf ) | |
echo "${FCNF}\t${CNF}\t${NF}" | |
DEV_KEY=${PRIVATE}/${NF}.key | |
DEV_CSR=${PUBLIC}/${NF}.csr | |
DEV_CRT=${PUBLIC}/${NF}.crt | |
# Формуємо новий приватний ключ, якщо він не існує або ж будемо використовувати існуючий: | |
if [ -f ${DEV_KEY} ]; then | |
KEY_OPT="-key" | |
else | |
KEY_OPT="-keyout" | |
fi | |
# Сформуємо csr файл (Certificate Signing Request) на підставі ключа | |
openssl req -new -nodes -sha256 -config ${FCNF} ${KEY_OPT} ${DEV_KEY} -out ${DEV_CSR} | |
# Випускаємо сертифікат: | |
openssl x509 -req -days ${DAYS} -in ${DEV_CSR} -CA ${ROOT_CRT} -CAkey ${ROOT_KEY} -CAcreateserial -out ${DEV_CRT} | |
chgrp ${SSLGRP} ${DEV_KEY} | |
echo | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment