*********************** CA für mapWOC aufsetzen *********************** Hintergrund =========== Unkonfiguriert kommunizieren die mapWOC-Komponenten (z.B. *mapwoc-master* und *mapwoc-node*) **ohne Autentifizierung** und **unverschlüsselt**. Alle Komponenten unterstützen jedoch TLS-Authentifizierung und Verschlüsselung. Für die Einrichtung einer CA wird in der Regel ein neues Paket benötigt, unter Debian Squeeze heißt dieses *gnutls-bin*. Eine lesbare, generelle Einführung in das Thema asynchrone Verschlüsselung bietet z.B. das `Gpg4win Kompendium `_. Eine CA erstellen ================= Anstatt eine CA zu erstellen, kann natürlich auch eine bereits bestehende CA (oder Zertifikate) benutzt werden -- siehe dazu weiter unten im Abschnitt `"Einbindung der Zertifikate" `_. Nachfolgende Schritte sind in einem temporären und geschütztem Verzeichnis durchzuführen. Idealerweise findet dies nicht auf dem mapwoc-System sondern auf einem externen System statt. Es können keine Passwörter verwendet werden. #. Schlüsselpaar für die CA erzeugen: .. code-block:: bash certtool --generate-privkey --outfile ca-key.pem #. Zertifikat für die CA erzeugen: .. code-block:: bash certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca-cert.pem .. note:: Alle außer den folgenden Fragen können mit den Voreinstellungen beantwortet werden (Enter drücken): The certificate will expire in (days): 1000 Does the certificate belong to an authority? (y/N): y Will the certificate be used to sign other certificates? (y/N): y Will the certificate be used for signing (required for TLS)? (y/N): y Is the above information ok? (Y/N): Y #. Schlüsselpaar für den mapwoc-redirector erzeugen: .. code-block:: bash export CRDP=/var/lib/mapwoc/redirector/credentials/ certtool --generate-privkey --outfile $CRDP/key.pem #. Zertifikat für den mapwoc-redirector erzeugen und signieren: .. code-block:: bash certtool --generate-certificate --load-privkey $CRDP/key.pem \ --outfile $CRDP/cert.pem --load-ca-certificate ca-cert.pem \ --load-ca-privkey ca-key.pem .. note:: Alle außer den folgenden Fragen können mit den Voreinstellungen beantwortet werden (Enter drücken): Common name: mapwoc-redirector The certificate will expire in (days): 1000 Is the above information ok? (Y/N): Y #. Schlüsselpaar für den mapwoc-master erzeugen: .. code-block:: bash export CRDP=/var/lib/mapwoc/master/credentials/ certtool --generate-privkey --outfile $CRDP/key.pem #. Zertifikat für den mapwoc-master erzeugen: .. code-block:: bash certtool --generate-certificate --load-privkey $CRDP/key.pem \ --outfile $CRDP/cert.pem --load-ca-certificate ca-cert.pem \ --load-ca-privkey ca-key.pem .. note:: Alle außer den folgenden Fragen können mit den Voreinstellungen beantwortet werden (Enter drücken): Common name: mapwoc-master The certificate will expire in (days): 1000 Is the above information ok? (Y/N): Y #. Schlüsselpaar für die mapwoc-node erzeugen: .. code-block:: bash export CRDP=/var/lib/mapwoc/node/credentials/ certtool --generate-privkey --outfile $CRDP/key.pem #. Zertifikat für den mapwoc-node erzeugen: .. code-block:: bash certtool --generate-certificate --load-privkey $CRDP/key.pem \ --outfile $CRDP/cert.pem --load-ca-certificate ca-cert.pem \ --load-ca-privkey ca-key.pem .. note:: Alle außer den folgenden Fragen können mit den Voreinstellungen beantwortet werden (Enter drücken): Common name: mapwoc-node The certificate will expire in (days): 1000 Is the above information ok? (Y/N): Y #. Schlüsselpaar für die gui erzeugen: .. code-block:: bash export CRDP=/var/lib/mapwoc/gui/credentials/ certtool --generate-privkey --outfile $CRDP/key.pem #. Zertifikat für den mapwoc-node erzeugen: .. code-block:: bash certtool --generate-certificate --load-privkey $CRDP/key.pem \ --outfile $CRDP/cert.pem --load-ca-certificate ca-cert.pem \ --load-ca-privkey ca-key.pem .. note:: Alle außer den folgenden Fragen können mit den Voreinstellungen beantwortet werden (Enter drücken): Common name: mapwoc-gui The certificate will expire in (days): 1000 Is the above information ok? (Y/N): Y #. Sichern des CA-Schlüssels: Der CA-Schlüssel ca-key.pem wird nun nur noch benötigt, wenn dem System neue Komponenten (z.B. eine neue Node) hinzugefügt werden sollen. Er ist von dem ausführenden System zu entfernen und separat gesichert aufzubewahren. Einbindung der Zertifikate ========================== Wichtig: Versichern Sie sich erneut, dass restriktive Rechte (nur Nutzer-lesbar) auf den u.g. Verzeichnissen und Dateien gesetzt sind. #. CA-Zertifikat bekannt machen: .. code-block:: bash cp ca-cert.pem /var/lib/mapwoc/redirector/credentials/ cp ca-cert.pem /var/lib/mapwoc/master/credentials/ cp ca-cert.pem /var/lib/mapwoc/gui/credentials/ cp ca-cert.pem /var/lib/mapwoc/node/credentials/ #. Die Konfigurationsdateien der Komponenten anpassen: In den Konfigurationsdateien ist folgende Zeile auszukommentieren: .. code-block:: bash #sslconfig=/var/lib/mapwoc/redirector/credentials wird dann zu .. code-block:: bash sslconfig=/var/lib/mapwoc/redirector/credentials Der Pfad (/var/lib/mapwoc/redirector/credentials) ist für die anderen Komponenten entsprechend anzupassen (für den *mapwoc-master* z.B.: /var/lib/mapwoc/master/credententials), bzw. in den Vorgaben bereits angepasst. .. note:: In den credentials-Verzeichnis müssen sich drei nicht-leere Dateien befinden: key.pem (Schlüssel der Komponente) cert.pem (Zertifikat der Komponente) ca-cert.pem (CA-Zertifikat) .. note:: In der .ini Datei der GUI heißt die auszukommentierende Option nicht *sslconfig* sondern *master.sslconfig*, also z.B. master.sslconfig = /var/lib/mapwoc/gui/credentials