mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
* Prevent regenerating keystore and add background task to upload certificates * Remove background task to upload certificates * keystore-setup: delete old key in jks Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> * also don't allow ca-cert alias Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
55 lines
2.1 KiB
Bash
Executable File
55 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you 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.
|
|
|
|
PROPS_FILE="$1"
|
|
KS_FILE="$2"
|
|
KS_PASS="$3"
|
|
KS_VALIDITY="$4"
|
|
CSR_FILE="$5"
|
|
|
|
ALIAS="cloud"
|
|
|
|
# Re-use existing password or use the one provided
|
|
if [ -f "$PROPS_FILE" ]; then
|
|
OLD_PASS=$(sed -n '/keystore.passphrase/p' "$PROPS_FILE" 2>/dev/null | sed 's/keystore.passphrase=//g' 2>/dev/null)
|
|
if [ ! -z "${OLD_PASS// }" ]; then
|
|
KS_PASS="$OLD_PASS"
|
|
else
|
|
sed -i "/keystore.passphrase.*/d" $PROPS_FILE 2> /dev/null || true
|
|
echo "keystore.passphrase=$KS_PASS" >> $PROPS_FILE
|
|
fi
|
|
fi
|
|
|
|
if [ -f "$KS_FILE" ]; then
|
|
keytool -delete -noprompt -alias "$ALIAS" -keystore "$KS_FILE" -storepass "$KS_PASS" > /dev/null 2>&1 || true
|
|
fi
|
|
|
|
CN=$(hostname --fqdn)
|
|
keytool -genkey -storepass "$KS_PASS" -keypass "$KS_PASS" -alias "$ALIAS" -keyalg RSA -validity "$KS_VALIDITY" -dname cn="$CN",ou="cloudstack",o="cloudstack",c="cloudstack" -keystore "$KS_FILE" > /dev/null 2>&1
|
|
|
|
# Generate CSR
|
|
rm -f "$CSR_FILE"
|
|
addresses=$(ip address | grep inet | awk '{print $2}' | sed 's/\/.*//g' | grep -v '^169.254.' | grep -v '^127.0.0.1' | grep -v '^::1' | sed 's/^/ip:/g' | tr '\r\n' ',')
|
|
keytool -certreq -storepass "$KS_PASS" -alias "$ALIAS" -file $CSR_FILE -keystore "$KS_FILE" -ext san="$addresses" > /dev/null 2>&1
|
|
cat "$CSR_FILE"
|
|
|
|
# Fix file permissions
|
|
chmod 600 $KS_FILE
|
|
chmod 600 $PROPS_FILE
|
|
chmod 600 $CSR_FILE
|