mirror of
https://github.com/OpenVPN/openvpn.git
synced 2025-05-09 13:41:06 +08:00

Many of the scripts in the openvpn source have their shell set to /bin/bash, but only two use bash features. The attached patch (against openvpn-2.1_rc9) sets the shell on the rest of the scripts to /bin/sh for better portability. The only scripts that actually require bash are contrib/pull-resolv-conf/client.{up,down} ; they use the ${!var} variable indirection feature. sf.net tracker: <https://sourceforge.net/tracker/?func=detail&aid=2040296&group_id=48978&atid=454721> Discussed on the IRC meeting March 4, 2010 in #openvpn-discussions. <http://thread.gmane.org/gmane.network.openvpn.devel/3242> Signed-off-by: David Sommerseth <dazo@users.sourceforge.net> Acked-by: James Yonan <james@openvpn.net>
40 lines
1.4 KiB
Bash
Executable File
40 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Build a new PKI which is rooted on an intermediate certificate generated
|
|
# by ./build-inter or ./pkitool --inter from a parent PKI. The new PKI should
|
|
# have independent vars settings, and must use a different KEY_DIR directory
|
|
# from the parent. This tool can be used to generate arbitrary depth
|
|
# certificate chains.
|
|
#
|
|
# To build an intermediate CA, follow the same steps for a regular PKI but
|
|
# replace ./build-key or ./pkitool --initca with this script.
|
|
|
|
# The EXPORT_CA file will contain the CA certificate chain and should be
|
|
# referenced by the OpenVPN "ca" directive in config files. The ca.crt file
|
|
# will only contain the local intermediate CA -- it's needed by the easy-rsa
|
|
# scripts but not by OpenVPN directly.
|
|
EXPORT_CA="export-ca.crt"
|
|
|
|
if [ $# -ne 2 ]; then
|
|
echo "usage: $0 <parent-key-dir> <common-name>"
|
|
echo "parent-key-dir: the KEY_DIR directory of the parent PKI"
|
|
echo "common-name: the common name of the intermediate certificate in the parent PKI"
|
|
exit 1;
|
|
fi
|
|
|
|
if [ "$KEY_DIR" ]; then
|
|
cp "$1/$2.crt" "$KEY_DIR/ca.crt"
|
|
cp "$1/$2.key" "$KEY_DIR/ca.key"
|
|
|
|
if [ -e "$1/$EXPORT_CA" ]; then
|
|
PARENT_CA="$1/$EXPORT_CA"
|
|
else
|
|
PARENT_CA="$1/ca.crt"
|
|
fi
|
|
cp "$PARENT_CA" "$KEY_DIR/$EXPORT_CA"
|
|
cat "$KEY_DIR/ca.crt" >> "$KEY_DIR/$EXPORT_CA"
|
|
else
|
|
echo 'Please source the vars script first (i.e. "source ./vars")'
|
|
echo 'Make sure you have edited it to reflect your configuration.'
|
|
fi
|