summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-nds/openldap/files/gencert.sh-2.2.27')
-rw-r--r--net-nds/openldap/files/gencert.sh-2.2.27118
1 files changed, 118 insertions, 0 deletions
diff --git a/net-nds/openldap/files/gencert.sh-2.2.27 b/net-nds/openldap/files/gencert.sh-2.2.27
new file mode 100644
index 000000000000..a06c53345d17
--- /dev/null
+++ b/net-nds/openldap/files/gencert.sh-2.2.27
@@ -0,0 +1,118 @@
+#!/bin/sh
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+#
+# Originally written by me for the mdk distro
+# On the old header you can find my old email <czoffoli@linux-mandrake.com>
+#
+# Last update 20050401 - Christian Zoffoli <xmerlin@gentoo.org>
+#
+
+VERSION="0.3"
+openssl="/usr/bin/openssl"
+opensslopts=""
+ldapconfdir="/etc/openldap/ssl"
+pemfile="${ldapconfdir}/ldap.pem"
+randfile="${ldapconfdir}/ldap.rand"
+cfgfile="${ldapconfdir}/ldap.cfg"
+
+function fixperms {
+ chown root:ldap ${ldapconfdir} -R
+ find ${ldapconfdir} -type f -exec chmod 640 \{\} \;
+ chmod 750 ${ldapconfdir}
+}
+
+
+if [ ! -x ${openssl} ]; then
+ exit 0
+fi
+
+if [ ! -d ${ldapconfdir} ]; then
+ mkdir -p ${ldapconfdir}
+fi
+
+fixperms
+
+if [ -f ${pemfile} ]; then
+ echo "${pemfile} already exist, dying"
+ exit 0
+fi
+
+
+dd if=/dev/urandom of=$randfile count=1 2>/dev/null
+
+echo ""
+echo "______________________________________________________________________${T_ME}"
+echo ""
+echo "Creating self-signed certificate -- Version ${VERSION}"
+echo ""
+echo "______________________________________________________________________${T_ME}"
+echo ""
+
+
+COMMONNAME=`hostname`
+if [ ! -n "$COMMONNAME" ]; then
+ COMMONNAME="www.openldap.org"
+fi
+
+
+if [ -f ${cfgfile} ]; then
+ echo "${cfgfile} found, would you like to use it ? (y/n)"
+ read answer
+
+ case "$answer" in
+ y|Y)
+ opensslopts="-batch"
+ ;;
+ n|N)
+ cat >${cfgfile} <<EOT
+ [ req ]
+ default_bits = 1024
+ distinguished_name = req_DN
+ RANDFILE = ${randfile}
+ [ req_DN ]
+ countryName = "1. Country Name (2 letter code)"
+ countryName_default = "US"
+ countryName_min = 2
+ countryName_max = 2
+ stateOrProvinceName = "2. State or Province Name (full name) "
+ stateOrProvinceName_default = ""
+ localityName = "3. Locality Name (eg, city) "
+ localityName_default = ""
+ 0.organizationName = "4. Organization Name (eg, company) "
+ 0.organizationName_default = "LDAP Server"
+ organizationalUnitName = "5. Organizational Unit Name (eg, section) "
+ organizationalUnitName_default = "For testing purposes only"
+ commonName = "6. Common Name (eg, CA name) "
+ commonName_max = 64
+ commonName_default = "${COMMONNAME}"
+ emailAddress = "7. Email Address (eg, name@FQDN)"
+ emailAddress_max = 40
+ emailAddress_default = ""
+EOT
+ ;;
+ *)
+ echo "Wrong answer, retry!"
+ exit 1
+ ;;
+ esac
+fi
+
+echo ""
+
+${openssl} req -config ${cfgfile} ${opensslopts} -new -rand ${randfile} -x509 -nodes -out ${pemfile} -keyout ${pemfile} -days 999999
+
+if [ $? -ne 0 ]; then
+ echo "cca:Error: Failed to generate certificate " 1>&2
+ exit 1
+else
+ echo -e "\nCertificate creation done!"
+fi
+
+if [ -f ${randfile} ]; then
+ rm -f ${randfile}
+fi
+
+if [ -f ${pemfile} ]; then
+ fixperms
+fi