# Fedora Directory Server

##### Namenskonventionen

<div id="bkmrk-server%3A-der-ldap-ser">- <div>server: der LDAP-Server</div>
- <div>server.domaene.de: FQDN des Servers</div>

</div>##### Console starten

<div id="bkmrk-console-mit-ssl-unte">- <div>Console mit SSL-Unterstützung</div>

```
./startconsole -u admin -a https://server:45000/
```

- <div>Console ohne SSL-Unterstützung</div>

```
./startconsole -u admin -a http://server:45000/
```

</div>##### SSL-Verschlüsselung für den Directory-Server aktivieren

<div id="bkmrk-zertifikatsdatenbank">- <div>Zertifikatsdatenbank erzeugen und füllen:</div>

```
cd /opt/fedora-ds
# Zertifikatsdatenbank erstellen
shared/bin/certutil -N -P slapd-server- -d /opt/fedora-ds/alias
# vorhandene Zertifikate ins PKCS#12-Format umwandeln (Key und Zertifikat getrennt) (sofern nicht bereits vorher gemacht)
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "Server-Cert"
# Zertifikat in die Datenbank importieren
shared/bin/pk12util -i server.p12 -d alias -P slapd-server-
# Berechtigungen korrigieren
chown nobody.nobody alias/slapd-server-*
```

- <div>PIN-File zum passwortlosen Start anlegen:</div>

```
echo "internal:secret" > /opt/fedora-ds/alias/slapd-server-pin.txt
```

- <div>Datei /opt/fedora-ds/admin-serv/config/nss.conf editieren:</div>

```
#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
#NSSPassPhraseDialog  builtin
NSSPassPhraseDialog file:/opt/fedora-ds/alias/admin-serv-server-pin.txt
```

- <div>Nun sollte der passwortlose Start der LDAP-Servers möglich sein</div>

```
cd /opt/fedora-ds/slapd-server
./start-slapd
```

</div><p class="callout info">Dies gilt für den Fedora Directory Server 1.0.4 (in 1.1 hat sich einiges geändert)</p>

##### SSL-Verschlüsselung für den Admin-Server aktivieren

<div id="bkmrk-zertifikatsdatenbank-0">- <div>Zertifikatsdatenbank erzeugen und füllen:</div>

```
cd /opt/fedora-ds
# Zertifikatsdatenbank erstellen
shared/bin/certutil -N -P admin-serv-server- -d /opt/fedora-ds/alias
# vorhandene Zertifikate ins PKCS#12-Format umwandeln (Key und Zertifikat getrennt) (sofern nicht bereits vorher gemacht)
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "Server-Cert"
# Zertifikat in die Datenbank importieren
shared/bin/pk12util -i server.p12 -d alias -P admin-serv-server-
# Berechtigungen korrigieren
chown nobody.nobody alias/admin-serv-server-*
```

- <div>PIN-File zum passwortlosen Start anlegen:</div>

```
echo "internal:secret" > /opt/fedora-ds/alias/admin-serv-server-pin.txt
```

- <div>Datei /opt/fedora-ds/admin-serv/config/nss.conf editieren:</div>

```
#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
#NSSPassPhraseDialog  builtin
NSSPassPhraseDialog file:/opt/fedora-ds/alias/admin-serv-server-pin.txt
```

- <div>Nun sollte der passwortlose Start der Admin-Servers möglich sein</div>

```
cd /opt/fedora-ds
./start-admin
```

</div>##### Zertifikate via Kommandozeile erneuern

zuerst in das Verzeichnis mit der Directory-Datenbank wechseln:

<div id="bkmrk-cd-%2Fopt%2Ffedora-ds%2Fal">```
cd /opt/fedora-ds/alias
```

- <div>Zertifikat-Datenbank anzeigen</div>

```
../shared/bin/certutil -L -d . -P slapd-<hostname>-
```

- <div>einen Zertifikatsrequest erzeugen:</div>

```
TODO (ich habs über die grafische Konsole gemacht)
```

- <div>Zertifikat aus der Datenbank löschen:</div>

```
../shared/bin/certutil -D -n server-cert -d . -P slapd-<hostname>-
```

- <div>neues Zertifikat der Datenbank hinzufügen:</div>

```
../shared/bin/certutil -A -t u,u,u -n Server-Cert -d . -P slapd-<hostname>- -i /tmp/newcert.pem
```

</div>