#!/usr/bin/env bash # ============LICENSE_START======================================================= # csit-dcaegen2-collectors-hv-ves # ================================================================================ # Copyright (C) 2018-2019 NOKIA # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============LICENSE_END========================================================= set -eu -o pipefail -o xtrace STORE_PASS=onaponap CN_PREFIX=dcaegen2-hvves DNAME_PREFIX="C=PL,ST=DL,L=Wroclaw,O=Nokia,OU=MANO,CN=${CN_PREFIX}" TRUST=trust store_opts="-storetype PKCS12 -storepass ${STORE_PASS} -noprompt" function gen_key() { local key_name="$1" local ca="$2" local keystore="-keystore ${key_name}.p12 ${store_opts}" keytool -genkey -alias ${key_name} \ ${keystore} \ -keyalg RSA \ -validity 730 \ -keysize 2048 \ -dname "${DNAME_PREFIX}-${key_name}" keytool -import -trustcacerts -alias ${ca} -file ${ca}.crt ${keystore} keytool -certreq -alias ${key_name} -keyalg RSA ${keystore} | \ keytool -alias ${ca} -gencert -ext "san=dns:${CN_PREFIX}-${ca}" ${store_opts} -keystore ${ca}.p12 | \ keytool -alias ${key_name} -importcert ${keystore} printf ${STORE_PASS} > ${key_name}.pass } function gen_ca() { local ca="$1" keytool -genkeypair ${store_opts} -alias ${ca} -dname "${DNAME_PREFIX}-${ca}" -keystore ${ca}.p12 keytool -export -alias ${ca} -file ${ca}.crt ${store_opts} -keystore ${ca}.p12 } function gen_truststore() { local trusted_ca="$1" keytool -import -trustcacerts -alias ca -file ${trusted_ca}.crt ${store_opts} -keystore ${TRUST}.p12 printf ${STORE_PASS} > ${TRUST}.pass } function clean() { rm -f *.crt *.p12 *.pass } if [[ $# -eq 0 ]]; then gen_ca ca gen_ca untrustedca gen_truststore ca gen_key client ca gen_key server ca gen_key untrustedclient untrustedca elif [[ $1 == "clean" ]]; then clean else echo "usage: $0 [clean]" exit 1 fi