Subversion Repositories ALCASAR

Rev

Details | Last modification | View Log

Rev Author Line No. Line
2076 franck 1
#!/bin/sh
2
 
3
# Id: $Id$
4
 
5
# alcasar-certificates.sh
6
# by Franck BOUIJOUX and REXY
7
# This script is distributed under the Gnu General Public License (GPL)
8
 
2454 tom.houday 9
# Script permettant
2076 franck 10
#	- d'exporter les certificats d'un serveur pour les transposer sur un autre.
11
 
2454 tom.houday 12
# This script allows
2076 franck 13
#	- export certificates server to move them.
14
 
15
 
16
DIR_EXPORT="/root/Certificats"
17
DIR_PKI="/etc/pki"
18
DIR_SAVE="/root/PKI_SAVE"
19
DIR_IMPORT="/root/Certificats"
20
 
21
 
22
usage="Usage: alcasar-certificates.sh {--export or -x} | {--import or -i <FileOfCertificate.tar.gz>} "
23
 
24
nb_args=$#
25
args=$1
26
if [ $nb_args -eq 0 ]
27
then
28
	nb_args=1
29
	args="-h"
30
fi
31
 
32
 
2454 tom.houday 33
NOW="$(date +%G%m%d-%Hh%M)"		# date et heure du moment
2076 franck 34
FILE="certificates-$NOW"
35
DIR_SAVE=$DIR_SAVE-$NOW
36
 
2454 tom.houday 37
# Function of export
2076 franck 38
function certs_export() {
2454 tom.houday 39
	#  Export of CA Certificate
2076 franck 40
	cd /root
2454 tom.houday 41
	tar cvf $FILE.tar $DIR_PKI/CA/{alcasar-ca.crt,private/alcasar-ca.key}
2076 franck 42
 
2454 tom.houday 43
	#  Export of server Certificate
44
	tar rvf $FILE.tar $DIR_PKI/tls/{certs/alcasar.crt,private/alcasar.key,certs/server-chain.crt}
45
	gzip $FILE.tar
2076 franck 46
	echo "Le ficher des certificats exportés est : $FILE.tar.gz"
47
} # end function export
48
 
49
 
50
function archive() {
51
	# Sauvegarde de la pki actuelle
52
	[ -d $DIR_SAVE ] || mkdir $DIR_SAVE
53
 
2454 tom.houday 54
	#  Save of CA Certificate
2076 franck 55
	cd $DIR_PKI/CA/
2454 tom.houday 56
	cp alcasar-ca.crt $DIR_SAVE/.
57
	cp private/alcasar-ca.key $DIR_SAVE/.
2076 franck 58
 
2454 tom.houday 59
	#  Save of server Certificate
2076 franck 60
	cd $DIR_PKI/tls
2454 tom.houday 61
	cp certs/alcasar.crt $DIR_SAVE/.
62
	cp private/alcasar.key $DIR_SAVE/.
63
	cp certs/server-chain.crt $DIR_SAVE/.
2076 franck 64
} # end function archive
65
 
66
function import() {
67
	echo "Would you like to Import New Certificates in ALCASAR ?"
68
	read response
69
	if [ $response = "y" ] || [ $response = "o" ] || [ $response = "Y" ] || [ $response = "O" ]
70
	then
71
		[ -d $DIR_IMPORT ] || mkdir $DIR_IMPORT
72
		rm -rf $DIR_IMPORT/*
73
 
2454 tom.houday 74
		#  Import of CA Certificate
2076 franck 75
		tar xzvf $1 --directory=$DIR_IMPORT
76
		echo "Import new certificates in ALCASAR !!!"
77
		cp -r $DIR_IMPORT/* /.
78
		chown root:apache $DIR_PKI/CA/{alcasar-ca.crt,private/alcasar-ca.key}
79
		chown root:apache $DIR_PKI/tls/{certs/alcasar.crt,private/alcasar.key,certs/server-chain.crt}
80
 
81
		# Service apache restart
82
		service httpd restart
2454 tom.houday 83
	else
84
		echo "You are not import new certificates !!!"
85
		exit 0
2076 franck 86
	fi
87
} # end import
88
 
89
#  Core script
90
case $args in
91
	-\? | -h* | --h*)
92
		echo "$usage"
93
		exit 0
94
		;;
95
	--export | -x)	
96
		archive
97
		certs_export
98
		;;
99
	--import | -i)
100
		nb_args=$#
101
		if [ $nb_args -eq 1 ]
102
		then
103
			echo "Il faut passer un fichier de certificat en paramètre !!!"
2454 tom.houday 104
			exit 0
2076 franck 105
		fi
106
		import $2
107
		;;
108
	*)
109
		echo "Unknown argument :$1";
110
		echo "$usage"
111
		exit 1
112
		;;
113
esac
114
exit 0
115