Zertifikate mit Plesk und CAcert für mehrere VHosts

Normalerweise werden Zertifikate für Domains auf der Basis von IP Adressen ausgegeben. Das heißt bei einer IP kann ich nur eine einzelne Domain bedienen. Im CAcert-Wiki gibt es jedoch einige Hinweise wie sich dieses Problem für mehrere VHosts umgehen lässt. Ich habe Methode 1) gewählt und erfolgreich getestet. So geht’s:

Angenommen wir haben zwei Domains und wollen für diese Zertifikate erstellen. Als Beispiel nehme ich domain1.de, www.domain1.de, webmail.domain2.de und www.domain2.de. Zuerst müssen beide Domains bei CAcert registriert und bestätigt werden. Als nächsten Schritt muss die Zertifikatanforderung erstellt werden.

Dazu die openssl.cnf editieren (hier Ubuntu linux):
nano /etc/ssl/openssl.cnf

[ req ] muss req_extensions = v3_req beinhalten.

Unter [ v3_req ] muss eingefügt werden:
subjectAltName = DNS:www.domain1.de, DNS:webmail.domain2.de, DNS:www.domain2.de

Dann die Datei speichern und wir machen uns an das Erzeugen des privaten 1024-Bit-Schlüssels:
openssl genrsa -out mykey.pem 1024

Jetzt wurde eine Datei mykey.pem angelegt. Jetzt erstellen wir die Anforderung für CAcert:
openssl req -new -key mykey.pem -out myreq.pem

Als CommonName (CN) bitte unbedingt domain1.de angeben. myreq.pem wurde daraufhin erstellt und die alternativen Namen dabei aus der Config übernommen. Hier noch zwei Befehle zum Überprüfen der Eingaben:
openssl req -in myreq.pem -noout -verify -key mykey.pem
openssl req -in myreq.pem -noout -text

myreq.pem muss jetzt an CAcert (new Server Certificate) gesendet werden. Bei Erfolg erhält man das fertige Zertifikat zurück. Jetzt sind alle Teile vorhanden um das Zertifikat in Plesk zu aktivieren. Unter Server/Certificates muss ein neues erstellt werden. Dort den private key (mykey.pem), das erhaltene Zertifikat und das root-Zertifikat in den Textfeldern angeben. Zur Sicherheit kann man in Plesk auch nochmal die „Preferences“ ausfüllen. Hat das soweit funktioniert, einfach das neue Zertifikat auf ‚default‘ setzen und auch bei ‚IP-Adresses‘ das Zertifikat ändern. Viel Erfolg!

Plesk 8.0.1: Table ‚psa.exp_event‘ doesn’t exist

Nach dem Update von Plesk auf einem Strato-Server trat der genannte Fehler des Betreffs auf. Die Webseite des Herstellers gab leider nur eine Fehlerbehebung für die ältere Version 7.5.4 vor, die aber nicht funktionierte.

Funktionieren tut aber dieser Befehl:

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

DROP TABLE IF EXISTS `exp_event`;
CREATE TABLE `exp_event` (
`id` bigint(10) unsigned NOT NULL auto_increment,
`source` enum(‚pa‘,’plesk‘) default NULL,
`event_type` enum(’started‘,’stopped‘,’created‘,’updated‘, ‚deleted‘, ’status_changed‘, ‚terminated‘, ‚flushed‘, ‚installed‘, ‚uninstalled‘, ’siteapp_added‘, ’siteapp_removed‘, ‚expired‘, ‚exceeded‘) NOT NULL default ’started‘,
`event_time` datetime NOT NULL default ‚0000-00-00 00:00:00‘,
`obj_class` enum(‚license‘, ’service‘, ‚ip_address‘, ‚admin_info‘, ’siteapp‘, ’session_preferences‘, ‚client‘, ‚client_limits‘, ‚client_status‘, ‚client_prefs‘, ‚client_perms‘, ‚client_ip_pool‘, ‚client_limit_traffic‘, ‚client_limit_size‘, ‚domain‘, ‚domain_limits‘, ‚domain_user‘, ‚domain_limit_traffic‘, ‚domain_limit_size‘, ‚domain_status‘, ‚phosting‘, ‚fhosting‘, ‚db_server‘, ’subdomain‘, ‚mailname‘, ‚webuser‘, ‚maillist‘, ‚dns_zone‘, ‚mailname_antivirus‘, ‚mailname_spamfilter‘, ‚mailname_mailgroup‘, ‚mailname_autoresponder‘, ‚mailname_attachment‘, ‚dashboard_preset‘, ‚dashboard_preset_type‘, ‚dashboard_preset_name‘) NOT NULL default ‚license‘,
`obj_id` varchar(255) character set utf8 NOT NULL default “,
`host` varchar(255) character set utf8 NOT NULL default “,
`user` varchar(255) character set ascii NOT NULL default “,
`flushed` enum(‚true‘,’false‘) NOT NULL default ‚false‘,
PRIMARY KEY (`id`)
);

Danach gingen auch alle Funktionen von Plesk wieder problemlos. Ist aber trotzdem ärgerlich den Fehler erst über den SWsoft Service zu erfahren.

Jetzt weiß ich wenigstens auch wo mein Passwort im Klartext steht.