Jan 26

TLS – Zertifikat erzeugen

Apache + PHP + SSL, EMail Kommentare deaktiviert für TLS – Zertifikat erzeugen

TLS ist ein Zertifikat, die für vielen Bereichen Verwendung finden kann. Z.b. für verschlüsselte Webseiten oder für den verschlüsselten Email Verkehr.

Hier wird ein Zertifikat erstellt und selbst signiert. Da wir diesen später in Dovecot + Postfix einfügen, sind wir hier im der Pfadstruktur von Postfix.
Wo Ihr dieses Zertifikat erzeugt ist aber prinzipell egal.

Befehl für Shell/Batch:
mkdir /etc/postfix/tls
cd /etc/postfix/tls

 

Nun erzeugen wir einen privaten RSA Key. In einer 2048Bit Länge

Befehl für Shell/Batch:
openssl genrsa -out mail.key 2048

 

Als nächstes erzeugen wir eine sogannte CSR-Datei (Certificate Signing Request [engl.])
Wichtig hier ist bei der Abfrage bei: Common Name das hier hier eure korrekte Domain eintragt. z.b. webspace-for-you.de oder wenn es über eine Subdomain läuft: pop3s.webspace-for-you.de
Abhängig davon, was Ihr (eure Kunden) als Posteingangsserver / Postausgangsserver eintragen müssen.
Die Passwort-Abfrage lassen wir einfach leer. (Enter)

Befehl für Shell/Batch:
openssl req -new -key mail.key -out mail.csr

 

Zitat:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‚.‘, the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Brandenburg
Locality Name (eg, city) []:Lübben
Organization Name (eg, company) [Internet Widgits Pty Ltd]:webspace-for-you Team
Organizational Unit Name (eg, section) []:webspace-for-you Team
Common Name (eg, YOUR name) []:webspace-for-you.de
Email Address []:info@DEINE_EMAIL_ADDY.de

Please enter the following ‚extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 

So wie es oben beschrieben worden ist, gilt es immer. Also immer wenn Ihr ein SSL Zertifikat erstellen wollt.
Dieses Zertifikat muß aber noch signiert werden. Hier gibt es 2 Möglichkeiten:
* von ein Trust-Center z.b. PSW(kommerziell, aber ohne Fehlermeldung)
* wir selbst (Kostenfrei, aber Browser und Email-Client werden einmalig einen Fehler anzeigen)

Wir erzeugen nun einen kostenfreies lizensiertes Zertifikat, mit einer Laufzeit (Gültigkeit) von 10 Jahren.

Befehl für Shell/Batch:
openssl x509 -req -days 3650 -in mail.csr -out mail.cert -signkey mail.key

 

create_tls

 

Aug 05

short_open_tags = < ?PHP auf < ? ändern

Apache + PHP + SSL Kommentare deaktiviert für short_open_tags = < ?PHP auf < ? ändern

Normalerweise wird ein PHP Code mit <?PHP eingeleitet.

Wer alte Scripte oder schlecht programmiert hat, der verwendet <?
Dies ist aber seit der PHP5 Version nicht mehr vorgesehen, da es kein sauberes Programieren ist.
Wir empfehlen, alle Script dahingehen zu ändern, das <? mit <PHP ersetzt wird.

Werd dies aber nicht machen möchte hat noch eine alternative Möglichkeit, die alte Einstellung in PHP wieder zu aktivieren.

Das Zauberwort heißt short_open_tags und findet sich in der php.ini

In SUSE liegt diese in folgenden 2 Pfaden

Befehl für Shell/Batch:
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini

 

Je nachdem, wie PHP bei euch läuft, müßt Ihr die php.ini entsprechend bearbeiten.

Befehl für Shell/Batch:
vi /etc/php5/apache2/php.ini

 

Normalerweise so um die Zeile 131 zu finden. (OpenSuse 10.3)

Dies ändert man nun auf

Zitat:

short_open_tag = On

 

Und den Apachen danach nicht vergessen zu restarten.

 

Jun 26

Apache2 = 443 Port freischalten

Apache + PHP + SSL Kommentare deaktiviert für Apache2 = 443 Port freischalten

Damit der Apache2 Dienst auf den Port 443 lauschen kann, muß dieser „geöffnet“ werden.
Dies tun wir indem wir in der listen.conf das # Zeichen löschen.

Befehl für Shell/Batch:
vi /etc/apache2/listen.conf

Zitat:
Listen 443

 

Mrz 24

CSR Zertifikat erstellen (für https Seiten)

Apache + PHP + SSL Kommentare deaktiviert für CSR Zertifikat erstellen (für https Seiten)
Befehl für Shell/Batch:
cd /etc/apache2
mkdir ssl
cd ssl

 

Befehl für Shell/Batch:
openssl req -new -nodes -keyout www_DEINE_DOMAIN_de.key -out www_DEINE_DOMAIN_de.csr -newkey rsa:2048

 

Das ganze sieht wie folgt aus. Bei der Abfrage von [Common Name] müßen Sie die Domain Adresse eingeben, die Sie mit https einrichten wollen. Bei der Frage eines Passwortes => das leer lassen (einfach Enter drücken)

Befehl für Shell/Batch:
openssl req -new -nodes -keyout www_webspace-for-you_de.key -out www_webspace-for-you_de.csr -newkey rsa:2048

 

Zitat:
Generating a 2048 bit RSA private key
………………………………………………………………………….+++
………………………………….+++
writing new private key to ‚www_webspace-for-you_de.key‘
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‚.‘, the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Brandenburg
Locality Name (eg, city) []:Lübben
Organization Name (eg, company) [Internet Widgits Pty Ltd]:webspace-for-you Team
Organizational Unit Name (eg, section) []:webspace-for-you Team
Common Name (eg, YOUR name) []:webspace-for-you.de
Email Address []:info@DEINE_EMAIL_ADDY.de

Please enter the following ‚extra‘ attributes
to be sent with your certificate request
A challenge password []: <ENTER>
An optional company name []: <ENTER>

 

Mrz 16

PHP ReWrite aktivieren

Apache + PHP + SSL Kommentare deaktiviert für PHP ReWrite aktivieren

Man bearbeite die Datei:

Befehl für Shell/Batch:
vi /etc/sysconfig/apache2

 

und sucht dort nach Apache_Modules.
Dort fügt man rewrite mit ein und startet den apachen neu.

Zitat:
APACHE_MODULES=“actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite

 

Mrz 15

PHP Dateiupload erhöhen

Apache + PHP + SSL Kommentare deaktiviert für PHP Dateiupload erhöhen

Standard sind 2 MB pro Datei/Bild an erlaubten Upload bei PHP (man möge mich korrigieren, sollte es anders sein sollte)

Um diesen zu beheben, editiert man die php.ini

Befehl für Shell/Batch:
vi /etc/php5/apache2/php.ini

 

Dort sucht man nun nach upload_max_filesize und setzt nun seinen gewünschten neuen Wert.

Zitat:
; Maximum allowed size for uploaded files.
upload_max_filesize = 5M

 

Danach den apachen neu starten.

 

Mrz 13

status_module / ExtendedStatus aktivieren

Apache + PHP + SSL Kommentare deaktiviert für status_module / ExtendedStatus aktivieren

Um Kontrolle darüber zu haben, wie viel Last der Apache wegnimmt bzw. generell zu sehen, was gerade läuft, müßen wir status_module / ExtendedStatus aktivieren.

Befehl für Shell/Batch:
vi /etc/apache2/httpd.conf
 

Dort (irgendwo) folgendes eintragen:

Zitat:
LoadModule status_module /usr/lib64/apache2/mod_status.so
ExtendedStatus On

SetHandler server-status
Order deny,allow
Deny from all
Allow from all

 

Apachen neustarten:

Befehl für Shell/Batch:
/etc/init.d/apache restart

 

Wie Ihr (hoffentlich) gesehen habt, ist das der Eintrag für ein 64-Bit Suse System. (Zeile 1 = lib64)
Falls eure mod_status.so wo anders liegt, dann einfach den Pfad ändern.

Befehl für Shell/Batch:
find . / -name mod_status.so

 

Das ganze läßt sich dann wie folgt von der Browseroberfläche aufrufen:

Zitat:
http://www.EURE-DOMAIN.de/server-status oder
http://IP-ADDY/server-status

 

Wer nicht möchte, das man diese Datei so öffendlich aufrufen kann, der sollte den Pfad ändern (/server_status).
Am sichersten wäre es allerdings eine Passwortabfrage zu generieren.