Server Installation/Opennet CA
Software für Betrieb der Opennet CA.
Inhaltsverzeichnis |
Voraussetzungen
- openssl - zum Betrieb der CA Funktionen
- mailx, sharutils - zum Versand von E-Mails
- apache2 - für Webseiten
Funktionen
- Signieren von Zertifikatsanfragen
- Zurückziehen von Zertifikaten
- Erstellen der CRL Liste
- Download und CA Verifizierung einer CRL Liste
- Suchen von Zertifikaten über CN
- Logging und integriertes Backup
- automatischer Mailversand
- Erzeugen von Webübersicht
User u. Verzeichnisse
- User "opennetca" mit Home /home/opennetca
- Webseiten unter /var/www/htdocs/ca.opennet-initiative.de/
- CA Verzeichnis einrichten:
mkdir cert mkdir crl mkdir csr mkdir .backup touch index.txt touch serial.txt cp <src>/README . cp <src>/opennetca.sh . cp <src>/opennetca.conf . cp <src>/sign.sh . cp <src>/revoke.sh . cp <src>/crl.sh . cp <src>/opennet-*.crt . cp <src>/opennet-*.key . cp <src>/opennet-*.conf . chown -R opennetca:opennetca * chmod 600 opennet-*.key
Config Files
- OpenSSL Konfiguration: opennet-<ca-name>.ca.on_<year>.conf, notwendige Anpassungen:
[ opennetca ] dir = /home/opennetca/ca/<capath> certificate = $dir/opennet-<caname>.crt private_key = $dir/opennet-<caname>.key [ opennetca_certsign ] nsComment = Opennet <caname-text> CA nsCaRevocationUrl = http://ca.opennet-initiative.de/<caname>.crl nsRevocationUrl = http://ca.opennet-initiative.de/<caname>.crl [ opennetca_crl ] fullname=URI:http://ca.opennet-initiative.de/<caname>.crl
- CA Script Konfiguration: opennetca.cfg, notwendige Anpassungen:
# variables global CA_CONFIG=opennet-<caname>.conf CA_MAILSUBJECT="Opennet CA (<caname>)" # variables sign CA_CSRCN="<cn-extension1> <cn-extension2> .." # variables crl CA_CRL=<caname>.crl
CA Scripts
Download per Web: http://svn.opennet-initiative.de/listing.php?repname=on_opennetca
Checkout per SVN: svn checkout svn://svn.opennet-initiative.de/on_opennetca
- Opennet CA: opennetca.sh (Basisfunktionen, benötigt Konfiguration opennetca.conf)
- Zertifikate signieren: sign.sh (verwendet opennetca.sh sign Methode)
- Zertifikate zurückziehen: revoke.sh (verwendet opennetca.sh revoke Methode)
- CRL Liste erstellen: crl.sh (verwendet opennetca.sh crl Methode)
- Cert Suche: list.sh (verwendet opennetca.sh list Methode)
- Cert Liste in HTML: opennetca_htmlview.sh (eigenständiges Script)
- CRL Download: opennetca_crldownload.sh (eigenständiges Script, nur benötigt auf VPN Server)
Diese Files für jede CA bereitstellen. Keine Anpassung notwendig.
Cronjobs
Regelmäßige CRL Listen Erstellung und Bereitstellung:
# Opennet CA CRL Generator 15 1,13 * * * opennetca /home/opennetca/ca/root/crl.sh 2>/dev/null 15 1,13 * * * opennetca /home/opennetca/ca/vpnuser/crl.sh 2>/dev/null 15 1,13 * * * opennetca /home/opennetca/ca/vpnugw/crl.sh 2>/dev/null 25 1,13 * * * root cp /home/opennetca/ca/root/crl/*.crl /var/www/htdocs/ca.opennet-initiative.de/ 25 1,13 * * * root cp /home/opennetca/ca/vpnuser/crl/*.crl /var/www/htdocs/ca.opennet-initiative.de/ 25 1,13 * * * root cp /home/opennetca/ca/vpnugw/crl/*.crl /var/www/htdocs/ca.opennet-initiative.de/
Inhaltliche CRL Kontrolle per (u.a. Revoked Certificates):
openssl crl -text -in crl/<crlfile>.crl -CAfile <cafile>.crt
Öffentliche anonymisierte Zertifikatsliste bereitstellen:
# Opennet CA Cert List Generator 30 1,13 * * * root /home/opennetca/ca/root/opennetca_htmlview.sh --public >/var/www/htdocs/ca.opennet-initiative.de/root.html 30 * * * * root /home/opennetca/ca/vpnuser/opennetca_htmlview.sh --public > /var/www/htdocs/ca.opennet-initiative.de/vpnuser.html 30 * * * * root /home/opennetca/ca/vpnugw/opennetca_htmlview.sh --public > /var/www/htdocs/ca.opennet-initiative.de/vpnugw.html
Auf den Opennet VPN-Servern muss ebenfalls ein Cronjob angelegt werden, mm die CRLs regelmäßig zu aktualisieren. Details siehe Server Installation/OpenVPN.
Mailversand
Beim Signieren und Revoken wird durch das opennetca.sh Script automatisch eine E-Mail generiert. Diese enthält stets das Zertifikat, einen kurzen Infotext sowie Metaangaben zum Zertifikat.
Empfänger ist die Mailadresse im Zertifikat sowie die CSR-Mailadresse (konfigurierbar im Configfile). Als Absender der Mail wird der Username vom Server unter dem die CA installiert ist verwendet (hier: opennetca - AT - opennet-initiative.de). Zum Empfang von möglichen Rückantworten ist opennetca - AT - opennet-initiative.de mit Weiterleitung zu admin eingerichtet.