Wie können die RSA und ECDSA Schlüssel in einem Zertifikat gleichzeitig genutzt werden?

Möchten Sie Ihren Kunden eine moderne und schnelle Verschlüsselung mit einem EC-Schlüssel anbieten, aber die Kompatibilität von älteren Browsern macht Ihnen Sorgen? Dann bringen wir Ihnen die Lösung. Auf Ihrem Webserver können Sie nämlich zwei Zertifikate nebeneinander einstellen und das Zertifikat mit dem RSA-Schlüssel wird als Fallback dienen. In diesem Artikel erfahren Sie, wie Sie die zwei Zertifikate, ein mit dem RSA-Schlüssel und ein mit dem EC-Schlüssel, auf einer Domain gleichzeitig nutzen können.

Die Webserver können dies schon eine längere Zeit. Falls Sie also wegen der Kompatibilität von Browsern zögern, ob es die richtige Zeit ist, auf ein ECC-Zertifikat umzusteigen, können Sie für Ihre Kunden sorgenlos beide Zertifikate einstellen. Moderne Browser unterstützen den EC-Schlüssel und seine Nutzung und ihre Kommunikation mit dem Server wird dank ihm schneller sein. Solche Browser, die die Kryptografie der elliptischen Kurven (ECC) nicht unterstützen, werden das klassische RSA-Zertifikat als Fallback zur Verfügung haben.

Wie die zwei Zertifikate auf einem Webserver funktionieren

Die zwei Zertifikate mit verschiedenen Algorithmen können nebeneinander einfach funktionieren. In die Konfiguration des Servers brauchen Sie nur das zweite Zertifikat zu ergänzen und der Server wird sich schon selbst entscheiden können, welches Zertifikat er nutzen wird.

Zur Verfügung werden dem Server beide Zertifikate stehen, jedes mit einem anderen Algorithmus des Schlüssels. Welches Zertifikat zum Einsatz kommen wird, wird die Liste der Verschlüsselungsverfahren (sog. Cipher Suite) bestimmen, die nach der Präferenz ihrer Nutzung angeordnet sind (und entscheidend werden natürlich auch die Präferenzen des Browsers sein, welcher sich zu dem Server verbindet). Bevorzugt wird allgemein das ECC-Zertifikat, welches einen kürzeren Schlüssel enthält und dessen Kryptographie stärker als RSA ist.

Die Reihenfolge der Zertifikate wird also die Präferenz der Verschlüsselungsalgorithmen bestimmen, die sie für die Domain auf dem Webserver einstellen. In der Liste können Sie einige Verschlüsselungen bevorzugen und einige verbieten und der Server wird nachfolgend die früher angegebenen - präferierten - vor den später angegebenen probieren.

Fallback von ECC auf RSA

Falls sich der Server mit dem Client über die Verschlüsselungen mit dem EC-Schlüssel nicht einigen kann, wird er zu den in der Liste später angeführten und RSA nutzenden Verschlüsselungen übergehen, die der Browser bestimmt unterstützt. Somit wird der sogenannte Fallback auf das klassische RSA-Zertifikat gesichert. Dank diesem Prinzip ist die Nutzung der dualen Konfiguration mit keinem Risiko verbunden. Ihr Web wird auch ein Kunde mit einem alten Browser aufrufen können.

Einstellung der Verschlüsselungsverfahren

Die bevorzugten Verschlüsselungen müssen für jeden Webserver definiert werden. Zu diesem Zweck empfehlen wir Ihnen den Dienst moz://a SSL Configuration Generator oder Cipherli.st. Somit erwerben Sie eine von Sicherheitsexperten empfohlene Liste der Verschlüsselungsverfahren, ohne sie selbst erstellen zu müssen.

Wie können Sie das Duplikat des Zertifikats erwerben

Im SSLmarket erwerben Sie immer ein Zertifikat mit dem Algorithmus, welcher im CSR genutzt wurde. Falls Sie zu Ihrem bestehenden Zertifikat ein Duplikat mit einem anderen Algorithmus kostenlos erwerben möchten, kontaktieren Sie unseren Kundensupport. Sie müssen dasselbe Zertifikat nicht zweimal kaufen, um RSA und ECC gleichzeitig zu nutzen.

Apache

In die Konfiguration des VHosts eines konkreten Webs ergänzen Sie den Speicherort des zweiten Paares des Zertifikats und des privaten Schlüssels. Dieses zweite Zertifikat wird einen anderen Schlüssel-Algorithmus als das erste haben. Wir setzen voraus, dass Sie zu dem bestehenden RSA-Zertifikat ein ECC-Zertifikat ergänzen.

In die Konfiguration brauchen Sie nur das zweite Schlüsselpaar zu ergänzen. Seine Nutzung hängt dann davon ab, welche Algorithmen in der Liste der Verschlüsselungen - in Cipher Suite - bevorzugt werden.

SSLCertificateFile /etc/ssl/certs/ssl-rsa.crt
SSLCertificateKeyFile /etc/ssl/private/pkey-rsa.pem

SSLCertificateFile /etc/ssl/certs/ssl-ecc.pem
SSLCertificateKeyFile /etc/ssl/private/pkey-ecc.pem

Falls in der Konfiguration die Direktive SSLCACertificateFile aktiviert ist, können Sie sie ohne weiteres löschen oder auskommentieren. Das Intermediate (CA-Zertifikat) muss nicht separat angeführt werden, weil es bereits in der Datei mit dem Domainzertifikat vorhanden ist.

Die ECC nutzenden Verschlüsselungsalgorithmen sollten in der Liste logischerweise am Anfang, also mit höherer Priorität, angeführt werden. Die Protokolle und die Liste von Verschlüsselungsverfahren können Sie in der Datei ssl.conf einstellen (standardmäßig in dem Ordner /mods-enabled). Das folgende Beispiel haben wir von config.mozilla.org übernommen:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off

Nginx

Nginx kann das RSA- und das ECC-Zertifikat zugleich seit der Version 1.11.0. absichern, die im Jahr 2016 herausgegeben worden ist. Die Einstellung der Konfiguration für Nginx hat dieselbe Logik wie die für Apache. Sie brauchen nur das zweite Zertifikat in die Konfiguration zu ergänzen und der Server wird sich schon selbst entscheiden können.

server {
listen 443 ssl default_server;
server_name domain.de www.domain.de;
# RSA Zertifikat
ssl_certificate /var/ssl/domain.de/certs/fullchain.rsa.pem;
ssl_certificate_key /var/ssl/domain.de/private/privkey.rsa.pem;
# ECDSA Zertifikat
ssl_certificate /var/ssl/domain.de/certs/fullchain.ecc.pem;
ssl_certificate_key /var/ssl/domain.de/private/privkey.ecc.pem;

# Other directives
}

Einstellung von Protokollen und Liste der Verschlüsselungsverfahren (übernommen von ssl-config.mozilla.org):

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

Die Richtigkeit der Installierung überprüfen

Die Richtigkeit der Installierung des TLS-Zertifikats können Sie mit diesem Tool überprüfen. Für mehr Informationen lesen Sie den Artikel Überprüfung der Installierung.

Quellen und mehr Informationen


Pomoc s SSL certifikáty

Überfordert mit Informationen?

Schreiben Sie uns
info@sslmarket.ch
Kontaktformular
Rufen Sie uns an
089 - 954571 38
War für Sie dieser Artikel nützlich?