HTTPS am Apache Webserver einrichten
Verfügt man über ein Zertifikat, welches von einer öffentlichen, vertrauenswürdigen Root CA signiert wurde, kann dieses wie folgt im Apache eingepflegt werden.
Zertifikatsdateien vorbereiten[Bearbeiten]
Es wird davon ausgegangen, dass ein PFX-File (PKCS12) vorliegt und dieses zunächst konvertiert werden muss. Hierzu folgenden Befehl eingeben:
openssl pkcs12 -in yourpkcs12.pfx -out package.pem -nodes
yourpkcs12.pfx und package.pem muss entsprechend den eigenen Anforderungen angepasst werden. Sofern das PFX-File passwortgeschützt ist (absolut empfohlen!!!), wird noch nach diesem gefragt.
Kopiere die package.pem nun 2x und benenne diese Kopien um in z. B. package.key und package.cer
Lösche aus der package.key alles raus, außer den Teil zwischen
-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----
In der Datei package.cer entferne alles außer den Teil zwischen
-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
Ich gehe von einem Linux/Debian Server aus, auf dem der Apache läuft. Kopiere die package.key nach /etc/ssl/private und die package.cer nach /etc/ssl/certs
Apache konfigurieren[Bearbeiten]
Öffne mit dem VI das Apache Konfig-File /etc/apache2/sites-available/default und füge folgenden Eintrag hinzu bzw. ändere diesen entsprechend ab:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/package.cer SSLCertificateKeyFile /etc/ssl/private/package.key # Pfad zu den Webinhalten DocumentRoot /var/www/ </VirtualHost>
Achtung: es handelt sich lediglich um ein Beispiel, das ggf. den eigenen Anforderungen angepasst werden muss!
Intermediate CA Zertifikat einbinden[Bearbeiten]
Es wird in der Regel so sein, dass das eigene Zertifikat nicht unmittelbar von einer Root CA signiert wurde, sondern von einer Zwischenzertifizierungsstelle, einer so genannten Intermediate CA. Beispiel:
Sofern dieses ICA nicht am Client installiert ist, wird beim Aufruf unserer Webseite ein Zertifikatsfehler auftreten, da zwar die Root CA, aber nicht das Zertifikat der ICA bekannt ist. Deshalb muss am Linux Server dieses ICA-Zertifikat (Download auf der Webseite des CA-Betreibers) ebenfalls nach /etc/ssl/certs kopiert und im Apache Konfig-File /etc/apache2/sites-available/default mit folgender, zusätzlicher Zeile hinterlegt werden:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/package.cer SSLCertificateKeyFile /etc/ssl/private/package.key SSLCertificateChainFile /etc/ssl/certs/thawte_SHA256_SSL_CA.pem # Pfad zu den Webinhalten DocumentRoot /var/www/ </VirtualHost>
Starte mittels service apache2 restart den Webserver neu, um die Konfiguration zu übernehmen.
Ruft ein Client nun unsere Webseite über https auf, lädt er bei Bedarf das Intermediate CA Zertifikat in seinen lokalen Zertifikatsspeicher und die Webseite wird ohne Zertifikatsfehlermeldung angezeigt.