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?
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?
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 )
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).
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
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/
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.)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
csrutil enable
.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
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
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
Nehmen Sie als Nächstes genau die gleichen Änderungen wie in Schritt 14. in apache_serviceproxy.conf vor, beginnend bei Zeile 198.
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.
JYF
nicht2versiert