En la última versión de la aplicación Server de Apple, versión 5.0.4, que se ejecuta en El Capitan (10.11.2), los sitios web SSL usan la versión 1.0 de TLS. Pero, como dice un tal Ivan Ristic , "La conclusión es que TLS 1.0 es inseguro y debemos migrar lejos de él". ¿Cómo lograr eso con Server 5?
Vaya a http://www.apple.com/feedback y envíe comentarios solicitando que actualicen Server y OS X para admitir TLS 1.2. Es ridículo que no lo hagan, especialmente considerando que en iOS 9 y El Capitan requieren que los desarrolladores de Apple lancen software que solo se comunique con los servidores TLS 1.2. Incluso si pudiera parchear el servidor para que funcione con TLS 1.2, ¿qué sucede cuando Apple actualiza el servidor nuevamente y aún no es compatible con TLS 1.2? Cuando instale esa actualización, ¿sobrescribirá lo que haya puesto en su lugar?
Mientras tanto, supongo que la única opción real que tiene es instalar OpenSSL 1.0.1 o posterior, descargar el código fuente de Apache y luego construirlo vinculándolo con OpenSSL 1.0.1, y luego reemplazar el Apache de OS X con el uno que acabas de construir. Es casi seguro que eso requerirá deshabilitar la Protección de integridad del sistema porque no puede modificar los archivos centrales del sistema operativo como apache2. Es posible que pueda salirse con la suya simplemente cambiando mod_ssl.so después de hacer su compilación. ¡Pero es ridículo que tengamos que recurrir a esto! Apple necesita arreglar esto!!! (ver https://serverfault.com/questions/265556/upgrade-openssl-mod-ssl-on-mac-os-x-server )
Descargue VirtualBox e instale CentOS u otra versión de Linux con seguridad mejorada, y simplemente ejecute su servidor en la Mac. Porque, evidentemente, Apple cba para masticar chicle y caminar al mismo tiempo.
ACTUALIZAR:
Estos son los pasos exactos que hice para que (2.) arriba funcione.
Esto hace que OS X Server 5 funcione con TLS 1.2 y reenvíe el secreto en 10.11.1, lo que hace que ATS esté perfectamente feliz (especialmente si eres un desarrollador, esto es realmente genial).
En Terminal, ejecuta los siguientes comandos:
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
Copie mod_hfs_apple.so, mod_authnz_ldap.so y mod_ldap.so de /usr/libexec a /usr/local/apache-2.4.17/libexec/apache2/
csrutil disable
. (Esto le permite realizar cambios dentro de los directorios /usr/sbin y /usr, necesarios para cambiar el Apache predeterminado inseguro por el nuevo seguro que construirá).Reinicie de nuevo al modo normal, abra la Terminal y escriba los siguientes comandos:
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
.Configure PHP con el siguiente comando (modifique según sea necesario, pero esto funcionó para mi pila LAMP con 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
En un editor de texto, edite el archivo: /Library/Server/Web/Config/Proxy/servermgr_serviceproxy_customsites.plist Comenzando en la línea 65, realice estos cambios (líneas para eliminar , líneas nuevas ):
SSLCipherSuite "TODOS:!aNULL:!ADH:!eNULL:!BAJO:!EXP:RC4+RSA:+ALTO:+MEDIO"
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"
SSLHonorCipherPedido en
Protocolo SSL -TODOS +TLSv1
Protocolo SSL -SSLv2 -SSLv3
SSLProxyProtocol -TODOS +TLSv1
SSLProxyProtocolo -SSLv2 -SSLv3
A continuación, realice un cambio similar en apache_serviceproxy_customsites.conf, comenzando en la línea 13 (líneas para eliminar , líneas nuevas ):
SSLCipherSuite "TODOS:!aNULL:!ADH:!eNULL:!BAJO:!EXP:RC4+RSA:+ALTO:+MEDIO"
SSLHonorCipherPedido en
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"
Protocolo SSL -TODOS +TLSv1
Protocolo SSL TODO -SSLv2 -SSLv3
SSLProxyProtocol -TODOS +TLSv1
SSLProxyProtocolo TODO -SSLv2 -SSLv3
A continuación, realice exactamente los mismos cambios que en el paso 14, en apache_serviceproxy.conf, comenzando en la línea 198.
Inicie el servidor OS X y ejecute el siguiente comando para verificar que lo haya logrado: /usr/bin/nscurl --ats-diagnostics https :// [[la url https de su sitio personalizado]] Nota: la URL obviamente deberá formatearse adecuadamente. Dejo un espacio adicional antes de los dos puntos porque, de lo contrario, esta publicación se envía a moderación.
En mi caso, TODAS las pruebas regresaron con un "APROBADO".
Puedo proporcionarle un archivo de parche de git para realizar los cambios en sus archivos .conf, suponiendo que todavía tenga una instalación virgen y esté en la misma versión que yo.
JYF
not2savvy