Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortgeschrittene:apache-ssl

Dies ist eine alte Version des Dokuments!


SSL / TLS für Apache

Vorraussetzungen

Zertifikate, Anträge und Schlüssel an die passenden Stellen kopieren

Debian 4.0

cd /etc/ssl
cp /root/server-ssl/servercert.pem certs/
cp /root/server-ssl/serverkey.pem  private/
cp /home/ca/ca.linuxhotel.de/ca.linuxhotel.de.cert.pem  certs/
cp /home/ca/ca.linuxhotel.de/ca.linuxhotel.de.cert.pem /var/www/apache2-default/cacert.crt

SuSE 10.2

cd /etc/apache2
mkdir ssl.crt ssl.key ssl.csr 
cp /root/server-ssl/servercert.pem  ssl.crt/server.crt
cp /root/server-ssl/serverkey.pem   ssl.key/server.key
cp /root/server-ssl/serverreq.pem   ssl.csr/server.csr
cp /home/ca/ca.linuxhotel.de/ca.linuxhotel.de.cert.pem ssl.crt/ca.crt
cp /home/ca/ca.linuxhotel.de/ca.linuxhotel.de.cert.pem /var/www/apache2-default/cacert.crt

Centos 5

cd /etc/pki/tls
cp /root/server-ssl/servercert.pem certs/server.crt
cp /root/server-ssl/serverkey.pem  private/server.key

Apache konfigurieren

SuSE

cd /etc/apache2/vhosts.d/
cp vhost-ssl.template notebook07.linuxhotel.de-ssl.conf

/etc/apache2/vhosts.d/notebook07.linuxhotel.de-ssl.conf : ( SuSE 10.2 )

<VirtualHost _default_:443>
        DocumentRoot "/srv/www/htdocs"
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl.crt/server.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
</VirtualHost>

SSL Modul aktivieren: ( SuSE 10.2 )

a2enmod ssl

SSL Flag aktivieren: ( SuSE 10.2 )

a2enflag SSL

Konfiguration prüfen:

apache2ctl configtest
httpd2 -S

Dienst neu starten:

/etc/init.d/apache2 restart

Debian (5.0)

cd /etc/apache2/

/etc/apache2/ports.conf : ( Debian 4.0 )

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    NameVirtualHost *:443
    Listen 443
</IfModule>
cp sites-available/default sites-available/default-ssl

/etc/apache2/sites-available/default-ssl : ( Debian 4.0 )

<VirtualHost _default_:443>
        DocumentRoot "/var/www/notebook32.linuxhotel.de/html"
        SSLEngine on
        SSLCertificateFile    /etc/ssl/certs/servercert.pem
        SSLCertificateKeyFile /etc/ssl/private/serverkey.pem
</VirtualHost>

SSL Modul aktivieren:

a2enmod ssl

SSL Konfiguration aktivieren:

a2ensite default-ssl

Konfiguration prüfen:

apache2ctl configtest
apache2ctl -S

Dienst neu starten:

/etc/init.d/apache2 restart

CentOS 5

yum install mod_ssl

/etc/httpd/conf.d/ssl.conf :

SSLCertificateFile    /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
/etc/init.d/httpd restart

Konfiguration prüfen

apachectl configtest
apachectl -S

Testen

lsof -i :443
openssl s_client -connect localhost:443 -showcerts

SSL/TLS und name based virtual hosts

Vorraussetzung: wie in SSL Zertifikat beschrieben eine CA erstellt

Zertifikat

Server-Zertifikat beantragen

Als root:

cd
mkdir server-ssl
cp -a /etc/ssl/openssl.cnf server-ssl/config

Antrag und Schluessel fuer Server erzeugen: server-ssl/config :

[req]

req_extensions          = v3_req

[ v3_req ]
subjectAltName=DNS:notebook07.linuxhotel.de,DNS:iw.linuxhotel.de
openssl req -new -newkey rsa:2048 -nodes -config server-ssl/config -keyout server-ssl/serverkey.pem -out server-ssl/serverreq.pem
Common Name (eg, YOUR name) []:notebook32.linuxhotel.de
Email Address []:root@notebook32.linuxhotel.de

Pruefen ob Antrag und Schluessel ok sind:

openssl req -in server-ssl/serverreq.pem -noout -verify -key server-ssl/serverkey.pem

Antrag ansehen:

openssl req -in server-ssl/serverreq.pem -noout -text | grep -A1 X509v3

Antrag zum Nutzer ca kopieren:

cp server-ssl/serverreq.pem /home/ca

Als Nutzer ca Server-Zertifikat unterschreiben

su - ca
cp -a /etc/ssl/openssl.cnf ca.linuxhotel.de/config

ca.linuxhotel.de/config :

[ CA_default ]
copy_extensions = copy
x509_extensions = usr_cert

[ usr_cert ]
basicConstraints=CA:FALSE
openssl ca -in serverreq.pem -config ca.linuxhotel.de/config -out servercert.pem

Zertifikat ansehen:

openssl x509 -in servercert.pem -text | grep -A1 X509v3

Apache Konfiguration

Anfragen auf https:// umleiten

a2enmod rewrite
cd /etc/apache2

sites-available/default :

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

Alle virtual hosts umstellen

sites-available/default :

NameVirtualHost *:443
<VirtualHost _default_:443>

sites-available/* :

<VirtualHost *:443>

Dokumentation

fortgeschrittene/apache-ssl.1332457297.txt.gz · Zuletzt geändert: 2012/03/22 23:01 von ingo_wichmann