ubuntuusers.de

Apache - https als Standard

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Faceman

Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Ich habe mir jetzt einen Apache Server installiert und diesen mit ssl ausgerüstet

Wenn ich die IP Adresse des Servers angebe oder per localhost draufgehe nimmt er Standardmäßig http her

und ich möchte das wenn ich die IP Adresse des Servers oder per localhost draufgehe Standardmäßig https her nimmt

und nicht das ich es selbst hinschreiben muss.

mfg

Moderiert von ditsch:

Threadtitel angepasst. Bitte verwende einen sprechenden Threadtitel.

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Du kannst das mit mod_rewrite realisieren. Hier gibt es ein Beispiel dafür: Apache/modrewrite (Abschnitt „Webmailer-auf-https-umleiten“)

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Vielen Dank erstmal

Kann mir jemand das irgend wie genauer beschreiben oder hat vielleicht einer eine Anleitung

mfg

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Was ist dir denn unklar?

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Habe jetzt noch folgenedes gefunden und funktioniert

http://www.treibstofff.de/2008/05/05/apache-2-weiterleitung-redirect-von-http-zu-https-mit-http-status-301/
<VirtualHost 192.168.3.136:80>

 ServerName apache2-redirect.railshoster.de

<Location />
  Redirect 301 / https://apache2-redirect.railshoster.de/
</Location>

</VirtualHost>

sieht bei mir dann so aus

<VirtualHost *:80>

 ServerName localhost

<Location />
  Redirect 301 / localhost/
</Location>

</VirtualHost>

-nun hätte ich noch fragen kann ich das für meinen Server verwenden(habe diese sachen in der default datei eingetragen)

-Warum hat der andere oben eine IP Adresse da drinnen stehen <VirtualHost 192.168.3.136:80> und ich nicht wenn ich die IP Adresse die mein Computer von meinen Router bekommt da eintrage zeigt er beim neu starten des Apache Servers einen Fehler also habe ich es so gelassen <VirtualHost *:80> was hat er dann da für eine Adresse eingetragen

-ist bei ServerName egal was drinnen steht denn es geht irgendwie trotzdem wenn ich da andere Sachen hineinschreibe

-Was ist wenn mein Server von aussen erreichbar sein wird muss ich dann da drinnen auch

Redirect 301 / https://apache2-redirect.railshoster.de/

die Ip Adresse von meinen Server eintragen denn ich habe jetzt localhost eingetragen

habe das jetzt nur in meinen Heimnetzwerk getestet

mfg

teddy19

Avatar von teddy19

Anmeldungsdatum:
27. Februar 2008

Beiträge: 131

Ich würde dir auch den Weg über mod_rewrite empfehlen. Bei mir sieht das so aus:

In der "/etc/apache2/sites-available/default" steht vor

</VirtualHost>

dieser Block:

RewriteEngine on
RewriteLogLevel 2
RewriteCond %{HTTP_HOST} ^www.<deinedomain>$ [NC]
RewriteRule ^(.*) https://<deinedomain>$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^<deinedomain>$ [NC]
RewriteRule ^(.*) https://<deinedomain>$1 [L,R=301]

Damit wird aus "www.<deinedomain>" "https://<deinedomain>" und aus "<deinedomain>" "https://<deinedomain>".

Du wirst whrsch. keine statische IP haben oder?! Wenn du wie ich z.B. Dyndns benutzt setzt du für <deinedomain> einfach "xxx.homedns.org" ein. Wenn du auch die URL automatisch umgeschrieben haben willst wenn du übers lokale Netzwerk deinen Server ansprichst nimmst du den Codeblock einfach nochmal und setzt für <deinedomain> die lokale IP des Servers ein.

Wenn du nicht mehrere Virtuelle Hosts haben willst schreibst du bei <VirtualHost> einfach ein * rein, dann gilt dieser Host für alle IP-Adressen. Wenn du dort eine IP angibst kannst du je nachdem über welche IP dein Server angesprochen wird verschiedene Hosts konfigurieren. Das ist aber nur wichtig wenn du mehrere Seiten mit verschiedenen URL's verwalten willst und auch mehrer IP-Adressen hast.

ServerName sollte eig. die URL sein unter der dein Server erreichbar ist, also wieder <deinedomain>.

Wie gesagt, das mit dem Redirect würd ich weglassen und den Code von oben nutzen!

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Erstmals danke für deine Antwort habe das jetzt so genommen und hineinkopiert. Ich habe eine Statische IP von meinem Provider. Ich teste es zurzeit in meinen Netzwerk da hat der Computer die IP 192.168.1.117 das habe ich so eingetragen er geht aber immer auf die http Seite. Habe "modrewrite" mit "sudo a2enmod rewrite" auch aktiviert.

Das steht in der "default" Datei was mache ich falsch?:

NameVirtualHost *:80
<virtualhost *:80>

	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

RewriteEngine on
RewriteLogLevel 2
RewriteCond %{HTTP_HOST} ^www.192.168.1.117$ [NC]
RewriteRule ^(.*) https://192.168.1.117$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^192.168.1.117$ [NC]
RewriteRule ^(.*) https://192.168.1.117$1 [L,R=301]

</VirtualHost>

Habe es so auch probiert:

www.<192.168.1.117>
www.<localhost>
www.localhost (und nocheinmal ohne die Klammern oder wie man die nennt)

muss das zweimal das gleich stehen:

RewriteCond...
RewriteRule...
RewriteCond...
RewriteRule...

oder reicht es so habe es auch einaml versucht mit einem und den beiden:

RewriteCond...
RewriteRule...

mfg

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Juhu ☺ es läuft jetzt habe nocheinmal den Browser Cache entlärt und er hat aufeinmal die https geladen. War wohl irgend wie gespeichert oder so.

Ich habe noch so viel Fragen ich hoffe du kannst mir dabei helfen

1)Also wenn ich eine Statische IP habe brauche ich diese nur so eintragen? Und wenn ich die IP eintrage ist es dann normal das wenn ich localhost eingebe http kommt und nicht https?

2)Warum muss das gleiche irgendwie zweimal stehen.

RewriteEngine on
RewriteLogLevel 2
RewriteCond %{HTTP_HOST} ^www.<deinedomain>$ [NC]
RewriteRule ^(.*) https://<deinedomain>$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^<deinedomain>$ [NC]
RewriteRule ^(.*) https://<deinedomain>$1 [L,R=301]

oder ist das nur wenn man die Domain mit www oder ohne www eintippt?

3)Ich habe ssl mit dem Ubuntu Wiki eingerichtet(http://wiki.ubuntuusers.de/Baustelle/Apache/modssl?highlight=ssl) ist der Server jetzt fertig abgesichert(das https fertig konfiguriert) also sicher?

4)Und muss in der https.conf etwas stehen den ich habe da so ein tuturial gefunden wo er schreibt folgendes sollte drinstehen aber wenn ich das so schreibe funktioniert das micht oder braucht man das nicht?

http://faceman.kilu.de/Apache_Server aufsetzen_und_konfigurieren-1.jpg

mfg

teddy19

Avatar von teddy19

Anmeldungsdatum:
27. Februar 2008

Beiträge: 131

1)Wenn du nur 1 statische IP hast und nur einen Internetauftritt mit deinem Apache machen willst brauchst du nix eintragen außer "*", du kannst es aber natürlich machen. Informiere dich doch einfach mal ein bisschen über "Virtual Hosts" und deren Anwendung.

2)Wie du richtig erkannt hast geht es nur darum, dass wenn du ein "www" davor hast das auch umgeschrieben wird. Bringts natürlich nur wenn du auch ne URL benutzt, keiner wird ein "www" vor eine IP-Adresse schreiben 😀 Aber wenn du schon ein Domainnamen zu deiner IP hast solltest du den natürlich auch mit einer Rule versehen, die dann auch die Variante mit "www" einbeziehen sollte.

3)Nach dem Wiki dürfte dein Server jetzt SSL-Verbindungen mit deinem Zertifikat aufbauen. Solang du dein Private-Key gut aufhebst dürfte das sicher sein.

4)Meiner Meinung nach ist das nicht notwendig, das hast du ja schon alles in der "/etc/apache2/sites-available/ssl" gemacht, zumindest stehts so im Wiki! Also ich betreibe das auch nach der Anleitung des Wikis und es funktioniert problemlos.

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Hallo

Vielen Dank für deine Hilfe jetzt muss ich dich nocheinmal stören

entschuldige bei viertens(diese Frage war nicht auf das ssl bezogen sondern auf apache) habe ich die httpd.conf gemeint ob man da was eintragen muss den ich habe dieses tuturial gefunden wo er schreibt folgendes sollte drinstehen aber wenn ich das so schreibe funktioniert das micht oder braucht man das nicht?

http://faceman.kilu.de/Apache_Server aufsetzen_und_konfigurieren-1.jpg

Nocheinmal kurz wegen der ip das ich das richtig verstehe

Also wenn ich z.B. einen Router habe und von aussen auf diesen zugreife dieser auf den Server weiterleitet was trage ich dan bei "deinedomain" ein die IP von meinen Rechner wie jetzt bei mir 192.168.1.117???

Das ist mir irgend wie noch unklar denn jetzt wo ich ihn lokal teste habe ich seine IP Adress eingetragen 192.168.1.117 und er leitet auf https um.

mfg

teddy19

Avatar von teddy19

Anmeldungsdatum:
27. Februar 2008

Beiträge: 131

Bei mir ist die Datei "httpd.conf" komplett leer. Außerdem steht alles was der dort reingeschrieben hat ja schon in deiner "./sites-available/default". Ist also nicht nötig, whrsch. eine komplett andere Vorgehensweise als die, die hier im Wiki beschrieben wird. Also einfach leer lassen die Datei!

Du unterscheidest genau richtig. Du hast eine "Internet-IP", spricht jemand diese an landet er bei deinem Router, der die Anfrage dann je nach Einstellung an einen lokalen Rechner umleitet. Wenn du z.B. die IP 82.5.5.5 von deinem Provider gekriegt hast müsstest du, damit dein Apache-Server aus dem Internet erreichbar ist auf deinem Router den Port 80 (HTTP) und 443 (HTTPS) weiterleiten. In deiner "default" machst du für diesen Fall eine Rewrite-Rule die so aussieht (Es wird wohl niemand ein www vor die IP schreiben, deswegen kann man die Rule dafür weglassen):

RewriteEngine on
RewriteLogLevel 2
RewriteCond %{HTTP_HOST} ^82.5.5.5$ [NC]
RewriteRule ^(.*) https://82.5.5.5$1 [L,R=301]

2.Szenario wäre, dass du aus deinem lokalen Netzwerk auf den Apache-Server zugreifen willst. Dafür musst du eine zusätzliche Regel aufstellen, die jedoch jetzt anstatt deiner "externen" Internet-IP die lokale des Servers enthält, also in deinem Fall(beachte, dass du deinem Server von deinem Router eine statische IP zuteilen lassen solltest, sonst kann es passieren dass eines Tages der Server eine andere IP erhält und damit deine ganzen Regeln für die Katz sind!):

RewriteCond %{HTTP_HOST} ^192.168.1.11$ [NC]
RewriteRule ^(.*) https://192.168.1.11$1 [L,R=301]

Auf dauer wirst du dir dann whrsch. irgendwann einen Domainnamen besorgen. (Wenns umsonst sein soll empfehle ich DynDNS) Dann hast du eine Adresse á la max-meier.de. Dafür müsstest du dann nochmal 2Regeln aufstellen, einmal mit www und einmal ohne.

Da du zzt. aber scheinbar noch in der Testphase bist würde ich dir empfehlen deinen Server erstmal vollständig nach deinen Wünschen zu konfigurieren und in den Griff zu kriegen bevor du die Ports im Router öffnest und ihn damit für alle Welt verfügbar machst.

Ich hoffe das war verständlich.

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Vielen Dank für deine Hilfe

eine Frage hätte ich aber noch da ich in einem Suse Buch gelesen habe das sich der Server am Anfang einen öffentlichen key an den Client schickt und danach den Session key ausmachen.

Nun meine Frage wo ist der öffentliche key bzw. der Session key.

und noch einmal vielen Dank für deine Hilfe

mfg

teddy19

Avatar von teddy19

Anmeldungsdatum:
27. Februar 2008

Beiträge: 131

Deine Zertifikate findest du Normalerweise unter "/etc/apache2/ssl/". Kannst sie aber auch überall sonst ablegen, Die Einstellung dazu findest du unter "/etc/apache2/sites-available/ssl".

Bei mir steht da z.B. folgendes:

 SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/xxx_cert.pem
        SSLCertificateKeyFile /etc/apache2/ssl/xxx_realkey.pem

Im Wiki (Apache/modssl) erzeugen die nur ein Zertifikat und keinen Private-Key, wieso kann ich dir gerade nicht sagen. Vllt. kann uns das noch jemand anderes erklären... Für mich würde es mehr Sinn machen einen Public-Key und einen Private-Key zu haben. So wird das auch im Wiki unter CA beschrieben. Ich kann dir also nur sagen, dass es mit der CA-Anleitung aus dem Wiki bei mir Problemlos funktioniert, was jetzt genau der Unterschied zwischen diesen 2 Varianten ist kann ich dir nicht mit gewissheit sagen.

Edit: Hab mal die Leute, die sich um die Wiki-Seiten kümmern darauf angesprochen, vllt. können die ja weiterhelfen.

Faceman

(Themenstarter)
Avatar von Faceman

Anmeldungsdatum:
1. März 2008

Beiträge: 415

Dann wird wahrscheinlich in der .pem Datei der Schlüssel eingetragen werden???

mfg

teddy19

Avatar von teddy19

Anmeldungsdatum:
27. Februar 2008

Beiträge: 131

Eigentlich kann pro ".pem" nur ein Public oder Private-Key sein... Na, mal sehn was andere dazu sagen.

Antworten |