ISPConfig API Domain mit SSL anlegen

Dieses Thema im Forum "Entwicklerforum" wurde erstellt von shadowcast, 25. Juni 2014.

  1. shadowcast

    shadowcast Member

    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
     
  2. Till

    Till Administrator

    ja. Global hinterlegte zertifikate können hier nicht funktionieren da ein ssl vhost nur erstellt wird wenn die webseite auch wirklich ein ssl cert hinterlegt hat.
     
  3. shadowcast

    shadowcast Member

    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. shadowcast

    shadowcast Member

    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
     

Diese Seite empfehlen