Skip to content

Commit 22ed772

Browse files
Generate certs
1 parent 003026c commit 22ed772

39 files changed

+257
-162
lines changed

selenium/.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@ suites/screens/*
77
test/oauth/*/h2/*.trace.db
88
test/oauth/*/h2/*.lock.db
99
*/target/*
10+
tls-gen
11+
test/*/certs/*.pem
12+
test/*/certs/*.p12
13+
test/*/certs/*.jks
14+
test/*/*/*.pem
15+
test/*/*/*.p12
16+
test/*/*/*.jks

selenium/bin/components/devkeycloak

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ init_devkeycloak() {
99
print "> DEVKEYCLOAK_CONFIG_DIR: ${DEVKEYCLOAK_CONFIG_DIR}"
1010
print "> DEVKEYCLOAK_URL: ${DEVKEYCLOAK_URL}"
1111
print "> DEVKEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
12+
13+
generate-ca-server-client-kpi devkeycloak $DEVKEYCLOAK_CONFIG_DIR
14+
1215
}
1316
ensure_devkeycloak() {
1417
if docker ps | grep devkeycloak &> /dev/null; then

selenium/bin/components/keycloak

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ init_keycloak() {
1717
print "> KEYCLOAK_CONFIG_DIR: ${KEYCLOAK_CONFIG_DIR}"
1818
print "> KEYCLOAK_URL: ${KEYCLOAK_URL}"
1919
print "> KEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
20+
21+
generate-ca-server-client-kpi keycloak $KEYCLOAK_CONFIG_DIR
22+
2023
}
2124
start_keycloak() {
2225
begin "Starting keycloak ..."

selenium/bin/components/prodkeycloak

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ init_prodkeycloak() {
1616
print "> PRODKEYCLOAK_CONFIG_DIR: ${PRODKEYCLOAK_CONFIG_DIR}"
1717
print "> PRODKEYCLOAK_URL: ${PRODKEYCLOAK_URL}"
1818
print "> KEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
19+
20+
generate-ca-server-client-kpi prodkeycloak $PRODKEYCLOAK_CONFIG_DIR
1921
}
2022
start_prodkeycloak() {
2123
begin "Starting prodkeycloak ..."

selenium/bin/components/rabbitmq

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ init_rabbitmq() {
1010
[[ -z "${OAUTH_SERVER_CONFIG_BASEDIR}" ]] || print "> OAUTH_SERVER_CONFIG_BASEDIR: ${OAUTH_SERVER_CONFIG_BASEDIR}"
1111
[[ -z "${OAUTH_SERVER_CONFIG_DIR}" ]] || print "> OAUTH_SERVER_CONFIG_DIR: ${OAUTH_SERVER_CONFIG_DIR}"
1212

13+
if [[ ! -d "${RABBITMQ_CONFIG_DIR}/certs" ]]; then
14+
mkdir ${RABBITMQ_CONFIG_DIR}/certs
15+
fi
16+
generate-ca-server-client-kpi rabbitmq $RABBITMQ_CONFIG_DIR/certs
17+
generate-server-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
18+
generate-client-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
19+
generate-truststore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
1320
}
1421

1522
start_rabbitmq() {

selenium/bin/components/uaa

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ init_uaa() {
1616
print "> UAA_CONFIG_DIR: ${UAA_CONFIG_DIR}"
1717
print "> UAA_URL: ${UAA_URL}"
1818
print "> UAA_DOCKER_IMAGE: ${UAA_DOCKER_IMAGE}"
19+
20+
generate-ca-server-client-kpi uaa $UAA_CONFIG_DIR
21+
generate-server-keystore-if-required uaa $UAA_CONFIG_DIR
1922
}
2023
start_uaa() {
2124
begin "Starting UAA ..."

selenium/bin/suite_template

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,99 @@ generate_env_file() {
375375
source $ENV_FILE
376376
end "Finished generating env file."
377377
}
378+
generate-ca-server-client-kpi() {
379+
NAME=$1
380+
FOLDER=$2
381+
if [[ ! -f "${FOLDER}/server_${NAME}_key.pem" ]]; then
382+
do_generate-ca-server-client-kpi $1 $2
383+
fi
384+
}
385+
do_generate-ca-server-client-kpi() {
386+
NAME=$1
387+
FOLDER=$2
388+
ROOT=$SELENIUM_ROOT_FOLDER
389+
390+
begin "Generate certs for $NAME"
391+
392+
if [ ! -d "$ROOT/tls-gen" ]; then
393+
git clone https://github.com/michaelklishin/tls-gen $ROOT/tls-gen
394+
fi
395+
396+
print "Generating CA and Server (localhost and $NAME) PKI under $FOLDER ..."
397+
mkdir -p $FOLDER
398+
399+
CUR_DIR=$(pwd)
400+
cd $ROOT/tls-gen/basic
401+
cp openssl.cnf openssl.cnf.bak
402+
if [ -f "$FOLDER/openssl.cnf.in" ]; then
403+
cp $FOLDER/openssl.cnf.in >> openssl.cnf
404+
fi
405+
if [[ ! -z "${DEBUG}" ]]; then
406+
print "Used this openssl.conf"
407+
cat openssl.cnf
408+
fi
409+
make CN=$NAME CLIENT_ALT_NAME=internaluser
410+
cp openssl.cnf.bak openssl.cnf
411+
cd $CUR_DIR
412+
413+
cp $ROOT/tls-gen/basic/result/ca_certificate.pem $FOLDER/ca_${NAME}_certificate.pem
414+
cp $ROOT/tls-gen/basic/result/server_${NAME}_certificate.pem $FOLDER
415+
cp $ROOT/tls-gen/basic/result/server_${NAME}_key.pem $FOLDER
416+
cp $ROOT/tls-gen/basic/result/server_${NAME}.p12 $FOLDER
417+
cp $ROOT/tls-gen/basic/result/client_${NAME}_certificate.pem $FOLDER
418+
cp $ROOT/tls-gen/basic/result/client_${NAME}_key.pem $FOLDER
419+
cp $ROOT/tls-gen/basic/result/client_${NAME}.p12 $FOLDER
420+
chmod ugo+r $FOLDER/*.pem
421+
end "SSL Certificates generated for $NAME under $FOLDER"
422+
}
423+
generate-truststore-if-required() {
424+
NAME=$1
425+
FOLDER=$2
426+
if [[ ! -f "${FOLDER}/truststore.jks" ]]; then
427+
keytool -import \
428+
-trustcacerts \
429+
-file ${FOLDER}/ca_${NAME}_certificate.pem \
430+
-keystore ${FOLDER}/truststore.jks \
431+
-storepass foobar \
432+
-noprompt
433+
fi
434+
}
435+
generate-server-keystore-if-required() {
436+
NAME=$1
437+
FOLDER=$2
438+
if [ ! -f "${FOLDER}/server_${NAME}.jks" ]; then
439+
keytool -importkeystore \
440+
-destkeystore ${FOLDER}/server_${NAME}.jks \
441+
-srckeystore ${FOLDER}/server_${NAME}.p12 \
442+
-deststoretype pkcs12 \
443+
-srcstoretype pkcs12 \
444+
-alias 1 \
445+
-destalias server-${NAME}-tls \
446+
-deststorepass foobar \
447+
-destkeypass foobar \
448+
-srcstorepass "" \
449+
-srckeypass "" \
450+
-noprompt
451+
fi
452+
}
453+
generate-client-keystore-if-required() {
454+
NAME=$1
455+
FOLDER=$2
456+
if [ ! -f "${FOLDER}/client_${NAME}.jks" ]; then
457+
keytool -importkeystore \
458+
-destkeystore ${FOLDER}/client_${NAME}.jks \
459+
-srckeystore ${FOLDER}/client_${NAME}.p12 \
460+
-deststoretype pkcs12 \
461+
-srcstoretype pkcs12 \
462+
-alias 1 \
463+
-destalias client-${NAME}-tls \
464+
-deststorepass foobar \
465+
-destkeypass foobar \
466+
-srcstorepass "" \
467+
-srckeypass "" \
468+
-noprompt
469+
fi
470+
}
378471
run() {
379472
runWith rabbitmq
380473
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export OAUTH_PROVIDER_URL=https://devkeycloak:8442/realms/dev
2-
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/devkeycloak/ca_certificate.pem
2+
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/devkeycloak/ca_devkeycloak_certificate.pem
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export OAUTH_PROVIDER_URL=https://devkeycloak:8442/realms/dev
2-
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/devkeycloak/ca_certificate.pem
2+
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/devkeycloak/ca_devkeycloak_certificate.pem
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export OAUTH_PROVIDER_URL=https://prodkeycloak:8442/realms/prod
2-
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/prodkeycloak/ca_certificate.pem
2+
export OAUTH_NODE_EXTRA_CA_CERTS=multi-oauth/prodkeycloak/ca_prodkeycloak_certificate.pem

0 commit comments

Comments
 (0)