ispCP - Board - Support
[HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega Contributions Area (/forum-40.html)
+--- Forum: Howtos (/forum-41.html)
+--- Thread: [HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten (/thread-4186.html)



[HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten - CHBIE - 09-05-2008 12:11 AM

Bevor Du beginnst erstelle bitte eine Subdomain namens ssl.

"domain.tld" muss durch deine Domain ersetzt werden!

"xxx.xxx.xxx.xxx" muss durch deine Server IP ersetzt werden!

Server Certifikate erstellen:
Code:
apt-get install openssl ssl-cert
mkdir /etc/apache2/ssl
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.crt -keyout /etc/apache2/ssl/apache.key
Wichtig: der Common Name muss zwingend als ssl.tomain.tld eingetragen werden!
Code:
chmod 600 /etc/apache2/ssl/apache.crt
vi /etc/apache2/ports.conf
Listen 443 eintragen.

SSL Proxy einrichten:
Code:
vi /etc/apache2/sites-available/000-default-ssl
mit diesem Inhalt füllen:
Code:
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>

RewriteLock     /var/lock/rewrite.lock

<VirtualHost xxx.xxx.xxx.xxx:443>

DocumentRoot "/var/www/virtual/domain.tld/ssl/htdocs"
ServerName ssl.domain.tld
ServerAdmin admin@domain.tld
SuexecUserGroup vu2000 vu2000

SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

# Rewrite-Engine einschalten fuer Umschreiben der URL
RewriteEngine   on

# Logging ausschalten mit folgenden Zeilen:
#RewriteLog     /dev/null
#RewriteLog     0
RewriteLog      /var/log/apache2/sslproxy.log
RewriteLogLevel 1

RewriteMap      lowercase       int:tolower
# RewriteMap für die Domainnamen, welche SSL erhalten sollen
RewriteMap      domaindb        txt:/etc/apache2/ssldomains
RewriteRule     ^/icons/(.+)  -                               [L]
# Fuer MS Internet Explorer ab Version 6
RewriteRule     ^/w3c/(.+)      -                               [L]
# Kundendomain in Kleinbuchstaben umwandeln (fuer Datenbank-Lookup)
RewriteRule     ^/([^/]+)/(.*)  /${lowercase:$1}/$2             [S=1]
RewriteRule     ^/(.*)          /${lowercase:$1}
# Per Proxy Verbindung zu http://kundendomain/... aufbauen.
# Wahlweise auch http://www.kundendomain/...
# Falls Kundendomain ohne abschliessenden "/" angegeben,
# "/" anhaengen und Redirect erzwingen, d.h. Browser soll es
# mit "kundendomain/" nochmal versuchen.
# Für den Fall, dass der "Pfad" nicht in der domaindb gefunden wurde,
# ssl.domain/Pfad anzeigen.
RewriteRule     ^/www\.([^/]+)/(.*)     /${domaindb:$1|%{HTTP_HOST}/$1}/$2      [S=2]
RewriteRule     ^/([^/]+)/(.*)          /${domaindb:$1|%{HTTP_HOST}/$1}/$2      [S=1]
RewriteRule     ^/(.+)                  /$1/                    [R,L]
RewriteRule     ^/(.*)                  http://$1               [P,L]
</VirtualHost>

</IfModule>
</IfModule>

Code:
vi /etc/apache2/ssldomains
Hier erstellst Du für jede Domain welche den Proxy benutzen darf, folgenden Eintrag: (je Zeile ein Eintrag!)
Code:
domain.tld    www.domain.tld
nun die module starten
Code:
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
a2enmod ssl
a2ensite 000-default-ssl
Code:
vi /etc/apache2/mods-enabled/proxy.conf
so ändern
Code:
<Proxy *>
AddDefaultCharset off
Order deny,allow
#Deny from all
Allow from ssl.domain.tld
</Proxy>
nun den Webserver reloaden
Code:
/etc/init.d/apache2 force-reload
jetzt kannst Du so testen ob dein Proxy läuft
Code:
https://ssl.domain.tld/domain.tld
Gruss CHBIE


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - CHBIE - 09-05-2008 09:48 PM

Mit diesem Code kannst Du die bestehenden KundenDomains auslesen und in /etc/apache2/ssldomains einfügen.

PHP Code:
<?php
$server 
"localhost";
$Benutzer ""//Beuntzer eintragen
$Passwort ""//Passwort eintragen
$verbindung mysql_connect ($server$Benutzer$Passwort);
mysql_select_db("ispcp"$verbindung);
$sql "SELECT * FROM domain ORDER BY domain_id desc";  
$ergebnis mysql_query($sql$verbindung);  
while(
$row mysql_fetch_object($ergebnis))  
{  
   echo 
$row->domain_name,"    www.$row->domain_name<br />";  
}  
mysql_free_result($ergebnis);  
mysql_close($verbindung);  
?>
Den Code unter irgendwas.php speichen, per FTP auf den Server laden und aufrufen.
Alle Einträge markieren und in die /etc/apache2/ssldomains einfügen.


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - BeNe - 09-07-2008 02:09 AM

Fine! I will test it and then we should copy it to the Documentation -> HowTo´s and translate it in English.

Thanks &
Greez BeNe


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - petzsch - 09-10-2008 08:34 PM

I'm using pretty much the same piece of configuration lines on one of my VHCS machines.

Telling from the comment lines this was also
"inspired" by a strato or 1&1 howto. At least I think that's where I found it last time. ;-)

Just some ideas for the implemention of this:

According to http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritemap it would be faster to use DBM hash files for the name lookup instead of txt files. (could be worth considering for larger configs) It shouldn't be to hard to make a cronjob script to extract all active domains, subdomains and aliases into a text file und to covert them into a dbm file. It could also be possible to make an optional feature out of it so the reseller/admin can decide to make it avaible to (paying) customers only.


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - Diggo - 09-10-2008 08:56 PM

Super, auf sowas habe ich lange gewartet!

Super, i've been waiting for sth. like this all the time!


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - CHBIE - 09-10-2008 09:21 PM

@petsch
SSL Proxy geht meineswissens nur für domains nicht für subdomains und aliases.

das mit dem automaisch anlegen der benutzer beim einrichten würde ich auch begrüssen.

Gruss CHBIE


RE: SSL Proxy unter ispCP RC5 & RC6 einrichten - petzsch - 09-10-2008 09:52 PM

I don't see any reason why it shouldn't work with aliases and subdomains. It even works with Domains on other machines. You should just keep in mind that data between the machine running the ssl proxy and the one providing the site is exchanged unencrypted. So not quite what a user would expect from an SSL enabled site.

Just your export script won't work for subdomains and aliases.


RE: [HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten - umaxx - 01-07-2009 03:18 AM

Quote:
Code:
RewriteMap      lowercase       int:tolower
# RewriteMap für die Domainnamen, welche SSL erhalten sollen
RewriteMap      domaindb        txt:/etc/apache2/ssldomains
RewriteRule     ^/icons/(.+)  -                               [L]
# Fuer MS Internet Explorer ab Version 6
RewriteRule     ^/w3c/(.+)      -                               [L]
# Kundendomain in Kleinbuchstaben umwandeln (fuer Datenbank-Lookup)
RewriteRule     ^/([^/]+)/(.*)  /${lowercase:$1}/$2             [S=1]
RewriteRule     ^/(.*)          /${lowercase:$1}
# Per Proxy Verbindung zu http://kundendomain/... aufbauen.
# Wahlweise auch http://www.kundendomain/...
# Falls Kundendomain ohne abschliessenden "/" angegeben,
# "/" anhaengen und Redirect erzwingen, d.h. Browser soll es
# mit "kundendomain/" nochmal versuchen.
# Für den Fall, dass der "Pfad" nicht in der domaindb gefunden wurde,
# ssl.domain/Pfad anzeigen.
RewriteRule     ^/www\.([^/]+)/(.*)     /${domaindb:$1|%{HTTP_HOST}/$1}/$2      [S=2]
RewriteRule     ^/([^/]+)/(.*)          /${domaindb:$1|%{HTTP_HOST}/$1}/$2      [S=1]
RewriteRule     ^/(.+)                  /$1/                    [R,L]
RewriteRule     ^/(.*)                  http://$1               [P,L]

if I use the rewrite code - the ssl domain itself ssl.domain.tld is no longer reachable: 400 Bad Request
and this in the logs:
Code:
[Tue Jan 06 18:16:38 2009] [error] [client xxx.xxx.xxx.xxx] error parsing URL //: Invalid host/port

Sad

any hints?


RE: [HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten - CHBIE - 01-07-2009 05:13 AM

Frage hast Du das gemacht?

Quote:"domain.tld" muss durch deine Domain ersetzt werden!

"xxx.xxx.xxx.xxx" muss durch deine Server IP ersetzt werden!

Gruss CHBIE


RE: [HowTo] SSL Proxy unter ispCP RC5 & RC6 einrichten - umaxx - 01-07-2009 07:14 AM

(01-07-2009 05:13 AM)CHBIE Wrote:  Frage hast Du das gemacht?

Quote:"domain.tld" muss durch deine Domain ersetzt werden!

"xxx.xxx.xxx.xxx" muss durch deine Server IP ersetzt werden!

Gruss CHBIE

ja natürlich Smile

der proxy an sich funktioniert ja auch, nur eben die ssl.domain.tld selber, will nicht mehr Sad

hier noch was ich in /var/log/apache2/sslproxy.log drin habe:

Code:
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:10:59 +0100] [ssl.domain.tld/sid#89969e0][rid#8eb85a0/initial] (1) go-ahead with proxy request proxy:http:// [OK]
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:10:59 +0100] [ssl.domain.tld/sid#89969e0][rid#901d210/initial] (1) escaping https://ssl.domain.tld/favicon.ico/ for redirect
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:10:59 +0100] [ssl.domain.tld/sid#89969e0][rid#901d210/initial] (1) redirect to https://ssl.domain.tld/favicon.ico/ [REDIRECT/302]
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:10:59 +0100] [ssl.domain.tlde/sid#89969e0][rid#901d210/initial] (1) go-ahead with proxy request proxy:http://ssl.domain.tld/favicon.ico/ [OK]
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:11:02 +0100] [ssl.domain.tld/sid#89969e0][rid#8f77488/initial] (1) escaping https://ssl.domain.tld/favicon.ico/ for redirect
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:11:02 +0100] [ssl.domain.tld/sid#89969e0][rid#8f77488/initial] (1) redirect to https://ssl.domain.tld/favicon.ico/ [REDIRECT/302]
xxx.xxx.xxx.xxx - - [06/Jan/2009:22:11:02 +0100] [ssl.domain.tld/sid#89969e0][rid#8f77488/initial] (1) go-ahead with proxy request proxy:http://ssl.domain.tld/favicon.ico/ [OK]