ISPConfig API Domain mit SSL anlegen

#1
Morgen,

aktuell arbeite ich an einer Schnittstelle, welche im ISPConfig eine Domain anlegt. Das klappt bereits.
Nun würde ich gerne sämtliche über die Schnittstelle angelegten Domains mit einem Zertifikat versehen.
SSL=1

Die Frage ist, soll ich jedesmal den Key, CRT und Bundle mit übergeben oder kann ich das Zertifikat global ablegen z.B. /etc/ssl/meinecerts und per Direktiven darauf verweisen?

Der Punkt ist, dass trotz Haken bei SSL auf der 1. Domainseite im VHost kein <VirtualHost *:443> angelegt wird. Erst sobald ich ein Zertifikat erstelle oder speichere.

Als Direktiven habe ich aktuell 2 im Einsatz:
Code:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Der sorgt dafür, dass Anfragen über Port 80 weitergeleitet werden.

Code:
SSLEngine On
SSLCertificateFile /etc/ssl/meincert/meincert.de.crt
SSLCertificateKeyFile /etc/ssl/meincert/meincert.de.key
SSLCACertificateFile /etc/ssl/meincert/meinca.chain.class2.server.crt
Da wie erwähnt, der VHost 443 nicht exisitert, funktioniert das Ganze auch nicht.

Was empfehlt ihr mir?
Das einfachste wäre sicherlich dass mir bereits der 443 Teil erstellt wird und auf die global gespeicherten Zertifikate verwiesen wird.

LG
 
#3
Hi Till,

das heißt ich sollte jedes mal die Teile des Zertifikats mitgeben. Sprich die Felder Key, CRT und Bundle. Die Direktive dass er von Port 80 nach 443 leitet ist ja kein Problem.

Das heißt die Funktion "sites_web_domain_add" sollte mit folgendem Parameterarray klappen?

Code:
$params_webdomain = array(
    'server_id'                    => '1',
    'ip_address'                => '*',
    'domain'                    => $subdomain,
    'type'                        => 'vhost',
    'vhost_type'                => 'name',
    'stats_type'                => 'none',
    'backup_interval'            => 'daily',                                // ?
    'backup_copies'                => '3',
    'seo_redirect'                => 'NULL',
    'ssl_state'                    => 'NULL',
    'ssl_locality'                => 'NULL',
    'ssl_organisation'            => 'NULL',
    'ssl_organisation_unit'        => 'NULL',
    'ssl_country'                => 'DE',
    'ssl_domain'                => $subdomain,                            // ?
    'ssl_key'                    => '-----BEGIN RSA PRIVATE KEY-----
blabla
blublub
blabla
-----END RSA PRIVATE KEY-----',                                                // ?
    'ssl_request'                => 'NULL',
    'ssl_cert'                    => '-----BEGIN CERTIFICATE-----
blabla
blublub
blabla
-----END CERTIFICATE-----',                                                // ?
    'ssl_bundle'                => '-----BEGIN CERTIFICATE-----
blabla
blublub
blabla
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
blabla
blublub
blabla
-----END CERTIFICATE-----',                                                // ?
    'ssl_action'                => 'save',                                // ?
    'stats_password'            => '123456',                                    // ?must have more than 6 chars
    'apache_directives'            => 'RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]',            // directive that automatically include certificate and redirect
    'nginx_directives'            => '',
    'pm_max_children'            => '50',
    'pm_start_servers'            => '20',
    'pm_min_spare_servers'        => '5',
    'pm_max_spare_servers'        => '35',
    'pm_process_idle_timeout'    => '10',
    'pm_max_requests'            => '0',
    'custom_php_ini'            => '',
    'hd_quota'                    => '1000',
    'traffic_quota'                => '-1',
    'cgi'                        => '',
    'ssi'                        => '',
    'suexec'                    => '1',
    'errordocs'                    => '1',
    'subdomain'                    => 'none',                                // ?
    'php'                        => 'fast-cgi',                            // ?
    'ruby'                        => '',
    'python'                    => '',
    'ssl'                        => '1',
    'allow_override'            => 'all',
    'active'                    => 'y'
);
Die Kommentare mit ? habe ich noch nicht getestet, bei denen bin ich mir der Funktion noch nicht sicher. Die Werte habe ich z.T. lediglich aus den Select Feldern gelesen.

Fragen habe ich vor allem zu den PM Variablen z.B. "pm_max_children".
Das Grundscript habe ich aus dem Netz wo gefunden und bereits angepasst. Was heißen aber gerade diese PM Werte? Sie sind in der Übersicht im ISPConfig auch nicht ersichtlich?

LG
 
#4
Also die Sache wurde so getestet und funktioniert auch. Checkboxen musste ich z.T. von 1 auf y ändern, aber das ist ja kein Akt.

Ich frag mich nur ob es bezüglich den Zertifikaten auch sicher und geschickt ist?

LG
 

Werbung

Top