Wie aktualisiere ich Server 5 auf TLS 1.2?

In der neuesten Version von Apples Server-App Version 5.0.4, die auf El Capitan (10.11.2) ausgeführt wird, verwenden SSL-Websites die TLS-Version 1.0. Aber, wie ein gewisser Ivan Ristic sagt : „Unter dem Strich ist TLS 1.0 unsicher und wir müssen davon weg migrieren“. Wie erreicht man das mit Server 5?

Meine Frage ist nun obsolet, da der neueste Server 5.1 (auf El Capitan 10.11.4) endlich TLS 1.2 vollständig unterstützt.

Antworten (1)

  1. Gehen Sie zu http://www.apple.com/feedback und senden Sie Feedback und fordern Sie, dass sie Server und OS X aktualisieren, um TLS 1.2 zu unterstützen. Es ist lächerlich, dass sie das nicht tun, besonders wenn man bedenkt, dass sie in iOS 9 und El Capitan verlangen, dass Apple-Entwickler Software veröffentlichen, die nur mit TLS 1.2-Servern kommuniziert. Selbst wenn Sie Server so patchen könnten, dass er mit TLS 1.2 funktioniert, was passiert, wenn Apple Server erneut aktualisiert und TLS 1.2 immer noch nicht unterstützt? Wenn Sie dieses Update installieren, wird es alles überschreiben, was Sie installiert haben?

  2. In der Zwischenzeit besteht die einzige wirkliche Option, die Sie haben, wahrscheinlich darin, OpenSSL 1.0.1 oder höher zu installieren, den Apache-Quellcode herunterzuladen und ihn dann zu erstellen, indem er mit OpenSSL 1.0.1 verknüpft wird, und dann den Apache von OS X durch den zu ersetzen eine, die Sie gerade gebaut haben. Dies erfordert mit ziemlicher Sicherheit das Deaktivieren des Systemintegritätsschutzes, da Sie die Kernbetriebssystemdateien wie Apache2 nicht ändern können. Möglicherweise können Sie damit davonkommen, indem Sie einfach mod_ssl.so austauschen, nachdem Sie Ihren Build abgeschlossen haben. Aber es ist lächerlich, dass wir überhaupt darauf zurückgreifen müssen! Apple muss das beheben!!! (siehe https://serverfault.com/questions/265556/upgrade-openssl-mod-ssl-on-mac-os-x-server )

  3. Laden Sie VirtualBox herunter und installieren Sie CentOS oder eine andere Linux-Variante mit erhöhter Sicherheit und führen Sie Ihren Server einfach auf dem Mac aus. Denn offensichtlich soll Apple CBA Kaugummi kauen und gleichzeitig laufen.

AKTUALISIEREN:

Hier sind die genauen Schritte, die ich getan habe, um (2.) oben zum Laufen zu bringen.

Dies bringt OS X Server 5 dazu, mit TLS 1.2 und Forward Secrecy auf 10.11.1 zu arbeiten, was ATS vollkommen glücklich macht (besonders wenn Sie ein Entwickler sind, ist das wirklich cool).

  1. Installiere Homebrew und brew install openssl, brew installiere PCRE
  2. Laden Sie die neueste Quelle für Apache, apr und apr-util herunter
  3. Extrahieren Sie den Apache-Quellcode in /usr/local/src/httpd-2.4.17
  4. Extrahieren Sie apr- und apr-util-Archive nach /usr/local/src/httpd-2.4.17/srclib/apr und /usr/local/src/httpd-2.4.17/srclib/apr-util
  5. Ersetzen Sie das Zeichen „+“ durch das Wort „apache2“ in den Dateien config.layout in den Verzeichnissen apr und apr-util
  6. Führen Sie im Terminal die folgenden Befehle aus:

    cd /usr/local/src/httpd-2.4.17
    CFLAGS="-arch x86_64"
    ./configure --prefix=/usr/local/apache-2.4.17 --with-included-apr --with-included-apr-util -with-mpm=prefork --with-ssl=/usr/local/opt/openssl --enable-mods-shared=reallyall --enable-layout=Darwin
    make
    make install
    
  7. Kopieren Sie mod_hfs_apple.so, mod_authnz_ldap.so und mod_ldap.so von /usr/libexec nach /usr/local/apache-2.4.17/libexec/apache2/

  8. Deaktivieren Sie SIP: Starten Sie neu im Wiederherstellungsmodus (Befehl-R), öffnen Sie Terminal und geben Sie csrutil disable. (Auf diese Weise können Sie Änderungen in den Verzeichnissen /usr/sbin und /usr vornehmen, die erforderlich sind, um den unsicheren Standard-Apache durch den neuen sicheren auszutauschen, den Sie erstellen werden.)
  9. Starten Sie wieder in den normalen Modus, öffnen Sie das Terminal und geben Sie die folgenden Befehle ein:

    sudo mv /usr/sbin/httpd /usr/sbin/httpd.old
    sudo mv /usr/libexec/apache2 /usr/libexec/apache2.old
    sudo ln -s /usr/local/apache-2.4.17/sbin/httpd /usr/sbin/httpd
    sudo ln -s /usr/local/apache-2.4.17/libexec/apache2/ /usr/libexec/apache2
    
  10. Aktivieren Sie SIP erneut: Starten Sie den Wiederherstellungsmodus neu, öffnen Sie das Terminal und geben Sie csrutil enable.
  11. Starten Sie zurück in den normalen Modus und laden Sie die neuesten Quellen für PHP herunter, entpacken Sie sie dann nach /usr/local/src/php-5.6.16 (oder welche Version auch immer; 7.0 ist gerade herausgekommen, woot, aber ich weiß nicht, ob es das tun würde unterbricht die Verwendung von PHP durch OS X Server)
  12. Konfigurieren Sie PHP mit dem folgenden Befehl (ändern Sie ihn nach Bedarf, aber dies funktionierte für meinen LAMP-Stack mit OS X Server 5):

    ln -s /usr/local/opt/openssl /usr/local/openssl
    cd /usr/local/src/php-5.6.16
    CFLAGS="-arch x86_64" 
    ./configure --with-openssl=/usr/local/opt/openssl --with-pcre-regex=/usr/local/opt/pcre --with-curl=/usr/bin/curl --enable-exif --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql --enable-opcache --with-apxs2=/usr/local/apache-2.4.17/bin/apxs --prefix=/usr/local/apache-2.4.17/php/ --enable-sockets --enable-zip --with-pear=/usr/local/apache-2.4.17/lib/php --enable-mbstring --with-mysqli
    make
    make install
    
  13. Bearbeiten Sie in einem Texteditor die Datei: /Library/Server/Web/Config/Proxy/servermgr_serviceproxy_customsites.plist Führen Sie ab Zeile 65 die folgenden Änderungen durch (zu löschende Zeilen , neue Zeilen ):

    SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"

    SSLCipherSuite "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:! MD5:!DSS"

    SSLHonorCipherOrder Ein

    SSL-Protokoll -ALL +TLSv1

    SSL-Protokoll -SSLv2 -SSLv3

    SSLProxyProtocol -ALL +TLSv1

    SSLProxyProtocol -SSLv2 -SSLv3

  14. Nehmen Sie als Nächstes eine ähnliche Änderung in apache_serviceproxy_customsites.conf vor, beginnend bei Zeile 13 (zu löschende Zeilen , neue Zeilen ):

    SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"

    SSLHonorCipherOrder Ein

    SSLCipherSuite "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:! MD5:!DSS"

    SSL-Protokoll -ALL +TLSv1

    SSL-Protokoll ALLE -SSLv2 -SSLv3

    SSLProxyProtocol -ALL +TLSv1

    SSLProxyProtocol ALL -SSLv2 -SSLv3

  15. Nehmen Sie als Nächstes genau die gleichen Änderungen wie in Schritt 14. in apache_serviceproxy.conf vor, beginnend bei Zeile 198.

  16. Starten Sie den OS X-Server und führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie erfolgreich waren: /usr/bin/nscurl --ats-diagnostics https :// [[die https-URL Ihrer benutzerdefinierten Site]] Hinweis: Die URL muss natürlich formatiert werden richtig. Ich habe dort vor dem Doppelpunkt ein zusätzliches Leerzeichen eingefügt, da dieser Beitrag sonst an die Moderation gesendet wird.

In meinem Fall kamen ALLE Tests mit einem „PASS“ zurück.

Ich kann Ihnen eine Git-Patch-Datei zur Verfügung stellen, um die Änderungen an Ihren .conf-Dateien vorzunehmen, vorausgesetzt, Sie haben immer noch eine jungfräuliche Installation und Sie verwenden dieselbe Version wie ich.