Ich möchte TLSv1.2-Unterstützung in Apache auf meinem Scientific Linux 6-Server (RHEL6-Neuerstellung) haben.
Gibt es einen halb unterstützten Weg, um dies zum Laufen zu bringen? Am besten mit minimalem benutzerdefinierten Umbau. Im Moment verwende ich mod_ssl mit open_ssl, wie in den SL6-Repositorys bereitgestellt.
Bearbeiten: Sobald TLSv1.2-Unterstützung verfügbar ist, ist die Apache-Konfiguration gut dokumentiert und nicht zu schwierig. Das Problem ist, dass RHEL6 mit OpenSSL 1.0.0 ausgeliefert wird, das nur TLS bis 1.0 oder 1.1 unterstützt.
rhel
openssl
apache-httpd
scientific-linux
Michael Ekstrand
quelle
quelle
mod_gnutls
sollte TLS 1.2 bereitstellen. Möglicherweise müssen Sie eine aktuelle Version von gnuTLS selbst erstellen.Antworten:
Ich habe eine Kurzanleitung zum Backportieren von OpenSSL 1.0.1 RPM von Fedora Core zur Unterstützung von RHEL6 und Varianten geschrieben, indem ich die mitgelieferte Version 1.0.0 ersetzt habe, um TLSv1.2- und ECC-Unterstützung hinzuzufügen. Gebaut und getestet gegen CentOS 6.4 im September 2013:
Anleitung zu OpenSSL 1.0.1 RPM für CentOS 6
Bitte beachten Sie: Hier halte ich meine eigene Kopie von OpenSSL und OpenSSH auf dem neuesten Stand. Verbesserungen in CentOS 6.5 haben die Nachfrage nach TLS1.2 weitgehend gemindert, und Fehler wie Heartbleed werden dort behoben, während diese Antwort 2013 für immer stecken bleibt. Befolgen Sie die folgenden Schritte nicht wörtlich, es ist unbedingt erforderlich, dass Sie 1.0.1g oder neuer ausführen .
Jetzt mit github: github / ptudor / centos6-openssl
Ich habe einen Patch zur Verfügung gestellt, auf den ich in diesem Handbuch verweisen werde: openssl-spec-patricktudor-latest.diff
Bereiten Sie zunächst Ihre Build-Umgebung vor. (Wenn Sie EPEL installiert haben, verwenden Sie mock. Halten Sie es hier einfach ...)
Holen Sie sich als Nächstes das Fedora Core 20 SRPM für OpenSSL und die vollständige OpenSSL-Quelle.
Wenden Sie nun die alte Secure_Getenv-Syntax an und wenden Sie den Patch an:
Führen Sie den Build aus:
Hoffentlich lief alles gut, also installieren wir die neuen RPMs:
Stellen Sie sicher, dass es tatsächlich funktioniert hat:
Der Link oben auf meiner Website enthält weitere Details, dies sollte jedoch ein guter Ausgangspunkt sein.
Danke, viel Spaß.
20130819: Die Rohhaut-Revision wurde von 14 auf 15 erhöht.
20130831: Die fc20-Revision wurde von 15 auf 18 erhöht.
20130906: Die fc20-Revision wurde von 18 auf 19 erhöht.
20140408: Gehen Sie einfach auf meine Website für etwas nach 1.0.1g.
quelle
Ich habe diesen Link auf ServerFault gefunden, der das Setup von TLSv1.2 abdeckt. Die Fragen und Antworten tragen den Titel: SSL / TLS 1.2 unter Apache mit openssl 1.0.1 .
Diese Links enthalten Informationen zu TLSv1.2:
httpd.conf
Wenn Sie Folgendes in Ihr Programm aufnehmen, sollte TLSv1.2 aktiviert sein, vorausgesetzt, Sie haben httpd v2.2 oder höher und openssl 1.0.1c oder höher.Sie müssen Ihre CipherSuites noch einrichten. Hier kann es verwirrend werden. Gemäß den obigen Dokumenten ist die einzige obligatorische Verschlüsselungssuite für TLS 1.2
TLS_RSA_WITH_AES_128_CBC_SHA
:Dies besagt, dass der Server ein RSA-Zertifikat für den Schlüsselaustausch bereitstellen muss und dass die Verschlüsselung AES_128_CBC und der Mac SHA sein sollte.
In den httpd mod_ssl-Dokumenten bedeutet dies:
Informationen zu SSLCipherSuites finden Sie hier unter httpd .
In der Vergangenheit habe ich meinen Blog-Beitrag mit dem Titel: Sperren von SSLv2 in Apache verwendet , um dies für TLSv1.1 zu tun. Alles auf dieser Seite sollte immer noch relevant sein. Sie müssen lediglich die CipherSuites + die Versionen ändern
openssl
.quelle
Ich habe kürzlich das gleiche Problem für einen Freund im Zusammenhang mit POODLE untersucht.
Wenn Sie den neuesten (AORN) httpd24-Build von Oktober 2013 auf epel verwenden, erhalten Sie standardmäßig TLSv1.0 und TLSv1.1. Sobald Sie jedoch SSLProtocol in Apache auf etwas anderes Sinnvolles setzen, verlieren Sie diese Protokolle, da die openssl-Header, gegen die httpd24 anscheinend erstellt wurde.
In der Praxis bedeutet dies, dass Sie TLSv11 und TLSv12 implizit deaktivieren, wenn Sie versuchen, SSlv2 oder SSlv3 explizit zu deaktivieren.
Dies ist eine unglückliche Eigenart von mod_ssl, wenn Sie auf genau ein Protokoll zurückgreifen, das es kennt.
Das httpd24 in den RedHat "Software-Sammlungen" wurde in jüngerer Zeit erstellt und leidet nicht unter diesem Problem. Es wird vermutlich gegen ein späteres openssl erstellt (oder verfügt über einen trivialen benutzerdefinierten Patch).
quelle