Eine Zertifizierungsinstanz (PKI) basteln

(0 comments)

Wie in einem meiner vorigen Beiträgen schon erörtert war ich mal wieder gezwungen, mich mit PKI Infrastrukturen für meine SSL und S/MIME Zertifikate zu beschäftigen. Die Versuche haben folgende Software umfasst:


  • OpenSSL (http://www.openssl.org): Rein Kommandozeilen orientiert. Ich habe mir früher schon immer mal die Zertifikate so generiert, bin aber nie so wirklich glücklich damit geworden, weil die Parameterübergabe doch recht kompliziert ist, und man sich jedes mal von Neuem sinnvoll in die Konfiguration einlesen muss. Leistungsstark, aber nicht sehr benutzerfreundlich!

  • Den Mac OS X Zertifikats-Wizard: Das Ding geht ganz gut, aber für mich ist das wiederum zu einfach und man hat nur mit großer Mühe Kontrolle über die entstehenden Zertifikate. Also zu einfach und zu wenig Kontrolle

  • XCA (http://xca.sourceforge.net/) Ein GUI Programm, welches plattformunabhängig das Erstellen von Zertifikaten erlaubt. Eigentlich ganz nett, von der Bedienung nicht immer ganz schlüssig. Allerdings gibt es sehr wenige Updates des Programms und ich habe immer das ungute Gefühl auf einer nicht wirklich gut unterstützten Software zu sitzen.

Viel intensiver habe ich mich mit dem Thema nicht beschäftigt, ich wollte ja keine Doktorarbeit zu dem Thema abliefern.

Meine Lösung für das Problem war dann eine relativ einfache:

Nähere Infos zur Bedienung von EJBCA unter http://www.ejbca.org/docs/installation.html

Hier also die ganz kurze Anleitung wie man das Ding installiert:

Anmerkung vorher: Ich verwende als Datenbank in dieser Installation die mitgelieferte HSQLDB. Wenn man mehr Zertifikate ausstellen will und intensiver mit dem Ding arbeitet sollte man wohl eher MySQL oder MariaDB konfigurieren!


# Debian minimal Server in einer VM installieren
# bei der installation sollte man nur SSH Server angeben, den Rest nicht!
# VM Tools installieren:
apt-get install open-vm-tools
apt-get install openjdk-7-jdk sudo zip ant ant-optional ntp iptables-persistent
# jboss-eap-6.3 und ejbca_ce_6_2_0 holen
# auspacken und nach /opt schieben
ln -s /opt/ejbca_ce_6_2_0 /opt/ejbca
ln -s /opt/jboss-eap-6.3 /opt/jboss
rm -rf /opt/jboss/standalone/log
mkdir /var/log/jboss
ln -s /var/log/jboss /opt/jboss/standalone/log
echo "appserver.home=/opt/jboss" >> /opt/ejbca/conf/ejbca.properties
adduser --system --group jboss --home /home/jboss
chsh jboss -s /bin/sh
passwd jboss
chown -R jboss:jboss /opt/jboss/ /opt/ejbca/
chown jboss:jboss /var/log/jboss
# zweites Fenster öffnen und JBoss starten:
su - jboss
/opt/jboss/bin/standalone.sh
# wieder zurück ins alte Fenster, und dort ejbca basteln
su - jboss
cd /opt/ejbca
ant deploy
# bei Nachfragen einfach Enter drücken
ant install
# generiert die Default CA (Alles mit Default bestätigen!)
# Nun den Jboss im anderen Fenster stoppen und nochmal zum Test starten
# das Superadmin Zertifikat holen:
scp root@debianvm.local:/opt/ejbca/p12/superadmin.p12 .
# Importieren,... (PW=ejbca)
# Im Browser https://debian.local:8443/ejbca aufrufen
# Client Zertifikat wählen und der erste Test rennt ;-)
mkdir /opt/scripts
# Datei /opt/scripts/jboss.init mit folgendem Inhalt anlegen:
cat < < __EOF__ > /opt/scripts/jboss.init
#!/bin/sh
### BEGIN INIT INFO
# Provides: jboss
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Management of JBoss AS v7.x
### END INIT INFO
#Defining JBOSS_HOME
JBOSS_HOME=/opt/jboss/
case "$1" in
start)
echo "Starting JBoss AS7..."
sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh > /dev/null 2>&1 &
;;
stop)
echo "Stopping JBoss AS7..."
sudo sh ${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown
;;
log)
echo "Showing server.log..."
tail -1000f ${JBOSS_HOME}/standalone/log/server.log
;;
*)
echo "Usage: /etc/init.d/jboss {start|stop|log}"
exit 1
;; esac
exit 0
__EOF__
chmod 755 /opt/scripts/jboss.init
ln -s /opt/scripts/jboss.init /etc/init.d/jboss
chown -R jboss:jboss /opt/jboss/
update-rc.d jboss defaults
# iptables generieren
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
iptables-save > /etc/iptables/rules.v4
##### Reboot

EDIT: Habe versucht ein paar Fehler herauszukorrigieren ;-) (31.8.2015)

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

Recent Posts

Categories

Authors

Archive

2023
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005

Feeds

RSS / Atom