Eigenes Zertifikat Apache

german

#1

Hallo,

hier:
sdb.univention.de/1191
wird beschrieben wie ein eigenes Zertifikat installiert wird. Nun gibt es aber .pem Files mit unterschiedlicher Ausprägung:
ssl.comodo.com/support/creating-a-pem-file.php

Welcher von denen muss genommen werden?.

Dann noch, ich habe wie beschrieben den Ordner erstellt:
/etc/myssl/

Wie sieht die Berechtigungsstruktur des Ordners/der Files aus und welche User/Gruppen müssen da mit welchen Rechten drauf zugreifen können?.

Das war erst mal alles, danke.

Grüße,

Paul Joppen

.:Edit:.

Ich habe nun die Variante
Entire SSL Certificate Trust Chain

The Primary Certificate - your_domain_name.crt
The Intermediate Certificate - DigiCertCA.crt
The Root Certificate - TrustedRoot.crt

Ausprobiert. Leider wird nun die Chain an gemeckert das sie nicht komplett sein sollte. Nach Rücksprache mit meinen Dienstleiter der das Zertifikat bereitgestellt hat, hatte ich die
The Intermediate Certificate - DigiCertCA.crt
The Root Certificate - TrustedRoot.crt

in der Reihenfolge umgestellt. Leider ohne Erfolg.

U.A hier getestet
ssl-trust.com

mit der Meldung:
Das übergeordnete Zertifikat ist leider nicht bekannt.
Gibt es bei der Erstellung des .pem Files noch etwas spezifisches zu beachten?.

Als Zertifikat kommt ein Comodo Multidomain Zertifikat zum Einsatz.


#2

Hallo,

ich glaub, Sie machen sich das das zu schwer. Chains braucht man bei solchen Zertifikaten im Apachen wohl sehr selten. Bei ejabberd siehts (z.B.) aber anders aus.

Certificate Installation: Apache & mod_ssl hat unter Punkt 4 die nötigen Direktiven.

SSLCertificateKeyFile ist apache2/ssl/key
SSLCertificateFile ist apache2/ssl/certificate
SSLCertificateChainFile ist apache2/ssl/certificatechain

Warum in der SDB /etc/myssl steht, erschließt sich mir nicht. Es gibt bereits /etc/ssl/certs für die Zertifikate und /etc/ssl/private mit weniger Berechtigungen für den Key. Das funktioniert bei mir klaglos und scheint mir auch etwas sicherer.

Viele Grüße,
Dirk Ahrnke


#3

Hallo,

da ich es leid war mich stundenlang durch die verschiedensten Quellen zu wühlen um dann doch nur wieder Fragezeichen in den Augen zu haben, habe ich hier mal in Deutsch das zusammengefasst, was bei mir funktioniert.

Da ich ein Comodo Zertifikat habe ist das natürlich ein bisserl spezifisch, denke aber das es an andere Anbieter angepasst werden kann. Der größte Fallstrick war bei mir das in dem ca-bundle die Zertifikate nur mit -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- beschriftet waren. Lustig.

Von Comodo gelieferte Dateien:
meine.domain.de.p12
meine.domain.de.key
meine.domain.de.csr
meine.domain.de.crt
COMODORSAOrganizationValidationSecureServerCA.ca-bundle

Quellen
A - ssl.comodo.com/support/creating-a-pem-file.php
B - SSL-Verschlüsselung mehrere Domains und 2048 Key-Länge
C - sdb.univention.de/1191
D - startssl.com/Support?v=21

  1. Erstellung der Daten laut A Creating a .pem with the Entire SSL Certificate Trust Chain und C, wobei es sein kann das die Benennung der von Comodo gelieferten Dateien abweicht.

COMODORSAOrganizationValidationSecureServerCA.ca-bundle
beinhaltet
The Intermediate Certificate - COMODOCA.crt
The Root Certificate - AddTrustExternalCARoot.crt

meine.domain.de.crt
beinhaltet
The Primary Certificate - your_domain_name.crt

Textdokument öffnen, den Inhalt des Primary Certificates dort rein kopieren.
Dann die beiden Zertifikatblöcke des ca-bundles unter dem Primary kopieren. Wichtig ist nun das die beiden Blöcke aus ca-bundles getauscht werden (bei mir jedenfalls wollte der Apache sonst nicht mehr starten).

Das Textfile nun abspeichern unter cert.pem. Die Benennung habe ich aus C genommen.
Dann meine.domain.de.key umbenennen in private.key.

Nun in die Ordner kopieren, cert.pem in /etc/ssl/certs und private.key in /etc/ssl/private, nicht vergessen dort die Berechtigung anzupassen.

  1. Erstellung der Dateien für D. Damit wird die Zertifikatskette eingerichtet. Ich habe die Benennung aus D angepasst, kann aber auch geändert werden.

meine.domain.de.crt umbenennen in server.crt
meine.domain.de.key braucht nicht mehr geändert zu werden, der private Key liegt schon im Ordner
COMODORSAOrganizationValidationSecureServerCA.ca-bundle umbenennen in server-ca.crt

Die .crt Files nun in /etc/ssl/certs hochladen.

  1. Nun die Pfade anpassen

Die Datei /etc/apache2/sites-available/default-ssl anpassen:

SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/certs/server-ca.crt
SSLCACertificateFile /etc/univention/ssl/ucsCA/CAcert.pem

Hierbei ist zu beachten dass es bei Updates zu Änderungen kommen kann, da die Datei eventuell überschrieben wird. Ob der letzte Eintrag weg kann oder nicht, keine Ahnung. Ich habe in drin gelassen und keine Probleme gehabt.

  1. Zu guter Letzt laut C die Änderungen durchführen

ucr set apache2/ssl/certificate="/etc/ssl/certs/cert.pem"
ucr set apache2/ssl/key="/etc/ssl/private/private.key"
/etc/init.d/apache2 restart

Damit hatte ich nun keine Fehler mehr bei der Überprüfung.
Falls jemanden im Text Fehler auffallen, bitte melden.

MfG,

Paul Joppen

.:Edit:.

Die Pfade, wie von Herrn Ahrnke vorgeschlagen, angepasst. Ich habe noch die aus C, werde das aber bei Gelegenheit ändern
Text angepasst, die Frage nach Berechtigungen von Ordnern oder Files hat sich erledigt


#4

@Admin
da ich den Text nicht mehr ändern kann bitte bei:

SSLCertificateKeyFile /etc/ssl/private/server.key

ändern in
SSLCertificateKeyFile /etc/ssl/private/private.key

danke.

MfG,

P. Joppen


#5

Erledigt. Aber eigentlich müsste ein Edit immer möglich sein?


#6

Bei normalen Nutzern ist das nach einer gewissen Zeit nicht mehr der Fall.


#7

@ PJoppen - ahrnke - Thorp-Hansen Danke für die Beiträge…

Leider ist es für mich nun noch immer nicht ganz klar wie der import von eigenen Zertifikaten funktionieren könnte.

Ich möchte damit die Verbindung zu Kopano absichern, damit der Browser nicht immer mekert, dass Zertifikat sei ungültig.

Ich nutze üblicherweise Zertifikate von startssl.
Wie müste ich da vorgehen um dieses zu nutzen.
Laut dem Beitrag sdb.univention.de/1191 in der Support Datenbank müsste dies ja ganz einfach sein.

Nun frage ich mich was für eine Form das Zertifikat haben muss und welche Teile ich dazu brauche.
Muss wie von PJoppen selber eine Datei gebaut werden oder geht es auch einfacher.
Ggf. was für eine Zertifizierungsstelle sollte bevorzugt werden um es so einfach wie möglich zu gestallten.

Von start SSL habe ich diese Dateien bekommen 2_domain.de.crt und 1_root_bundle.crt
Nun kann ich mit dem Wizard von start SSL ein pfx erstellen, oder wie ist der Weg?
Z.Bsp. beschriebt start ssl es hier in etwa so startssl.com/Support?v=21

Apache Web Server

You will need 3 files:
2_your_domain.crt is from apache.zip you downloaded from StartCom
private.key is your private key created when you generate CSR (certificate signing request)
1_root_bundle.crt is from the apache.zip you downloaded from StartCom

Save all 3 files in Apache configuration folder /usr/local/apache2/conf/ (or anywhere you prefer).
Apache configuration folders can be in different places. Please check your server documentation.

In your Apache SSL configuration file ../extra/httpd-ssl.conf (in some distributions httpd.conf) find 3 lines starting:
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
SSLCertificateChainFile "/usr/local/apache2/conf/server-ca.crt"

Change file names (and paths if needed) to your file names.
It should look similar to below ones.

SSLCertificateFile "/usr/local/apache2/conf/2_your_domain.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/private.key"
SSLCertificateChainFile "/usr/local/apache2/conf/1_root_bundle.crt"

Restart Apache server.

Fukntioniert dies mit dem UCS auch

Stehe da gerade etwas auf dem Schlauch.

Danke Theo


#8

Hallo,

das sind meine UCRV für StartSSL bei meinem Server zu Hause:

apache2/ssl/certificate: /etc/ssl/certs/2_server.meinedomain.de.crt
apache2/ssl/certificatechain: /etc/ssl/certs/1_root_bundle.crt
apache2/ssl/key: /etc/ssl/private/meinedomain.de.key.nopass

Den Key erzeugt man im Laufe der Beantragung des Zertifikats selbst und wird darauf hingewiesen, ihn sicher zu speichern.
Damit man ihn nicht bei jedem Start des Webservers manuel eingeben muß, ist er zu entschlüsseln (startssl.com/Support?v=25#35).
Ich sichere mir den Key dann mit dem beschreibenden Namenszusatz.

hth,
Dirk Ahrnke


#9

@ahrnke

Wie immer sehr Hilfreich, danke Herr Ahrnke, dass klingt ziemlich einfach.
Fast so wie ich es bei meinem yaffas Server gemacht habe.

Sprich es müssen dann nur noch die Pfade in der Univention Configuration Registry angepasst werden?

Herzlichen dank, werde ich in Kürze ausprobieren.

Viele Grüße Theo


#10

Hallo,

erst mal Danke für Eure Mühen…

Aber ich scheitere ;-(

Ich habe ein kostenloses Zertifikat von StartSSL für data.domain.de.

Wenn ich die obigen Schritte durchführe - klappt scheinbar alles - und der Apache startet am Ende sauber neu.

Aber wenn ich in Firefox oder Chrome die Seite aufrufe bekomme ich nur “SEC_ERROR_REVOKED_CERTIFICATE”. Unter Edge und vom Handy aus geht es…

Was mache ich falsch?

Grüße

Frank


#11

Hallo,

Aktuelle Versionen von Firefox und Chrome misstrauen allen Zertifikaten von WoSign und StartCom (den Firmen hinter StartSSL), die nach dem 21. Oktober 2016 ausgestellt wurden.
golem.de/news/wosign-und-st … 24022.html
golem.de/news/zertifikate-a … 24162.html

Wenn du es einrichten kannst, dass dein UCS auf Port 443 (und für die Validierung auch auf Port 80) von außen erreichbar ist, würde ich auf Let’s Encrypt setzen. Andernfalls evtl. doch eins kaufen, StartSSL ist keine echte Option mehr.

Schönen Gruß,
Michael Grandjean


#12

Hallo,

danke ok - keine guten Nachrichten :slight_smile:

Kannst Du mir einen Anbieter empfehlen? Ist für den Hausgebrauch - daher wäre “kostenneutral” ganz gut :slight_smile:

Grüße

Frank


#13

Hallo my_ucs_2017

überlesen? :wink: Let’s Encrypt

letsencrypt.org/


#14

Danke - nicht überlesen - schon eingerichtet.