česky | cymraeg | deutsch | english | español | français | italiano | nederlands | polski | português --- noch mehr Schritt-für-Schritt-Anleitungen
SSL-Zertifikat und -Schlüssel für Ubuntu und Apache (Schritt-für-Schritt-Anleitung)
Hier eine genaue Beschreibung, wie man ein Zertifikat und Schlüssel für SSL mit Ubuntu oder Apache erstellen kann.
Zertifikat und Key erstellen (Ubuntu, Apache)
Das SSL-Zertifikat wird mit dem Befehl [create_ca_csr.sh] (https://wiki.cacert.org/CSRGenerator) erstellt. Dabei sollte das Crypto-Signatur-Verfahren mindestens auf SHA256 erhöht werden.
Dabei fällt ein privater Schlüssel (<deine.homepage>_privatekey.pem) im $home-Verzeichnis aus. Das ist der private Schlüssel des SSL-Zertifikates und extrem wichtig. Deshalb muss man muss ihn sicher verstauen, dass ihn keiner bekommt.
Ausserdem fällt ein CertificateSigningRequest in StandardOut aus. Das ist eine 'Anfrage' an eine CA (Certification Authority - in diesem Fall an cacert.org). Das CertificateSigningRequest muss man bei CAcert einreichen (in das Webformular). Dort wird es signiert und man bekommt ein Zertifikat zurück (das man in cacert-<deine.homepage>.crt abspeichert).
Für CAcert braucht man ein Client-Zertifikat zum Anmelden im Browser.
Das <deine.homepage>.pem fällt auch in $home-Verzeichnis bei dem Skript raus, ich weiß aber gerade nicht, für was das ist.
Den privaten Schlüssel (<deine.homepage>_privatekey.pem) legt man in /etc/ssl/private.
Das Zertifikat (cacert-<deine.homepage>.crt) in /etc/ssl/certs.
Die Stammzertifikate](https://www.cacert.org/index.php?id=3) hab ich nach /usl/local/share/ssl/ geschoben. Über sudo dpkg-reconfigure ca-certificates kann man das Stamm-Zertifikat systemweit importieren.
Apache
Nun muss der Webserver das Zertifikat verwenden.
Man macht dazu in /etc/apache/sites-availabe/ zu jeder site.conf eine site-ssl.conf
Dort schreibt man sowas hinein:
Apache
## Redirect to https site:
<VirtualHost *:80>
ServerName <deine.homepage>.de
ServerAlias www.<deine.homepage>.de
Redirect Permanent / https://<deine.homepage>.de
</VirtualHost>
## https site:
<IfModule mod_ssl.c>
<VirtualHost *:443>
[...]
Apache
## ssl things:
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/certs/CAcert-<deine.homepage>.crt
SSLCertificateKeyFile /etc/ssl/private/<deine.homepage>_privatekey.pem
SSLCertificateChainFile /usr/local/share/ssl/sub.class1.server.ca.pem
# HTTP Strict Transport Security (HSTS)
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
[...]
Apache
</IfModule>
- Seiten aktivieren und Apache neu starten:
bash
sudo a2enmod ssl
sudo a2dissite site.conf
sudo a2ensite site-ssl.conf
sudo service apache2 restart
fertig...
Quelle: SE/15