#########################################################################################################################################################
##  CLIENT CERTIFICATE GENERATION SCRIPT
##  FILE NAME : certificate.sh, version 1.0
##  AUTHOR : RITU SATI
##  Email  : sritu@novell.com 
##########################################################################################################################################################
                                                                                                                                                 
echo "  Client Certificate Creation  going on "


mkdir /etc/ssl/demoCA                        # Default Directory in openSSL where everything is kept  

cp /root/cacert.pem /etc/ssl/demoCA          # Copy the Server certificate ( CA Certificate )     

mkdir /etc/ssl/demoCA/private

cp /root/cakey.pem /etc/ssl/demoCA/private   # Copy the Private key 

touch /etc/ssl/demoCA/index.txt

no=01
echo $no | cat > /etc/ssl/demoCA/serial     # The current serial number for datbase update


mkdir /etc/ssl/demoCA/newcerts             


echo  "[ xpclient_ext]                      # The extentions to add to the  certificate
extendedKeyUsage = 1.3.6.1.5.5.7.3.2
[ xpserver_ext ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1 "  | cat >/etc/ssl/xpextensions

echo " Enter the number of clietns certificates you want "  

read count                                   # Number of client certificates

i=1 

while [ $i -le  $count ]

do
 
######################################################################################################################################################
# Edit the following varible as per your requirements

COUNTRY="CA"
PROVINCE="Province"
CITY="Some City"
ORGANIZATION="Organization"
ORG_UNIT="OU$i"
PASSWORD="novell"
COMMON_NAME_CLIENT="User$i"
EMAIL_CLIENT="client$i@example.com"
PASSWORD_CLIENT=$PASSWORD
COMMON_NAME_SERVER="eDirectory Server certificate"
EMAIL_SERVER="server@example.com"
PASSWORD_SERVER=$PASSWORD
Optional_name=$COMPANY                                                                                                                                


##########################################################################################################################################################                             
# Request and Key Generation for client certificate 

(echo $COUNTRY
echo $PROVINCE
echo $CITY
echo $ORGANIZATION
echo $ORG_UNIT
echo $COMMON_NAME_CLIENT
echo $EMAIL_CLIENT
echo $PASSWORD
echo $COMPANY  ) | openssl  req -new -keyout /home/client_key$i.pem -out /home/client_req$i.pem -days 730 -passin pass:$PASSWORD -passout pass:$PASSWORD 


########################################################################################################################################################
# Client Certificate Generation

(echo y
echo y ) | openssl ca -config /etc/ssl/openssl.cnf -policy policy_anything -out /home/client_cert$i.pem  -passin pass:$PASSWORD -key $PASSWORD -extensions xpclient_ext -extfile /etc/ssl/xpextensions -infiles /home/client_req$i.pem 
  

rm -fr /etc/ssl/test/index.txt 

touch /etc/ssl/test/index.txt


i=`expr $i + 1`

done

i=`expr $i - 1`

echo " $i Client Certificate Created " 

rm -fr  /etc/ssl/demoCA

###########################################################################################################################################################
# Client Certificate Creation completed 

