Selbst-Signiertes Apache Webserver-Zertifikat erstellen
Nachfolgend wird beschrieben, wie man mit OpenSSL ein selbst signiertes Zertifikat in Debian erstellen kann, um es für einen Apache Webserver zu verwenden.
Voraussetzungen
Ggf. muss man zuerst OpenSSL installieren
apt-get install openssl
Apache SSL Modul aktivieren:
sudo a2enmod ssl
Debian Paket ssl-cert
Wenn man das Debian Paket ssl-cert
installiert, wird ein selbst-signiertes Zertifikat automatisch erstellt:
apt-get install ssl-cert
Das Zertifikat wird abgelegt unter:
/etc/ssl/certs/ssl-cert-snakeoil.pem # Zertifikat /etc/ssl/private/ssl-cert-snakeoil.key # Privater Schlüssel
Es kann folgendermaßen regeneriert werden:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Zertifikat überprüfen siehe OpenSSL Werkzeuge
Selbst signiertes Zertifikat mit OpenSSL erstellen
Lokales Verzeichnis für die lokal generierten Zertifikate erstellen falls ssl-cert nicht installiert ist (siehe oben), z.B.:
mkdir /etc/ssl/localcerts cd /etc/ssl/localcerts
Zertifikat mit privaten und öffentlichen Schlüssel in einer Datei anlegen:
openssl req -x509 -new -days 365 -noenc -out apache.pem -keyout apache.key
Alternative mit RSA:
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -out cert.pem -keyout cert.pem # 4096 Bit Key
Man kann die Eingabeaufforderungen mit leeren und anonymen Werten füllen - muss man aber nicht, wenn man das Zertifikat ggf. manuell überprüfen will. "." entspricht "leer":
Country Name: DE State or Province: . Locality Name: . Organization Name: . Organizational Unit Name: . Common Name (FQDN-Name): domain.tld E-Mail Address: webmaster@localhost
Zertifikat überprüfen siehe OpenSSL Werkzeuge
Zertifikat in Apache-Webserver einhängen
Unter Umständen unnötig / Sinn unklar
ln -sf /etc/apache2/ssl/cert.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/cert.pem` # Geht ggf. auch ohne
Zugriffsrechte einschränken:
chmod 600 /etc/apache2/ssl/cert.pem ggf. noch Ownergruppen der cert.pem anpassen? (vgl. andere Dateien)
Nächste Schritte siehe Webserver installieren (Debian)#HTTPS in Apache einrichten