En la última versión de la aplicación Servidor de Apple, versión 5.0.4, que se ejecuta en El Capitán (10.11.2), los sitios web SSL utilizan la versión 1.0 de TLS. Pero, como dice un tal Ivan Ristic dice La conclusión es que TLS 1.0 es inseguro y debemos abandonarlo". ¿Cómo conseguirlo con Server 5?
Respuesta
¿Demasiados anuncios?-
Ir a http://www.apple.com/feedback y enviar comentarios exigiendo que actualicen Server y OS X para que soporten TLS 1.2. Es ridículo que no lo hagan, sobre todo teniendo en cuenta que en iOS 9 y El Capitán exigen que los desarrolladores de Apple publiquen software que sólo hable con servidores TLS 1.2. Incluso si pudieras parchear Server para que funcione con TLS 1.2, ¿qué pasa cuando Apple actualiza Server de nuevo, y sigue sin soportar TLS 1.2? Cuando instales esa actualización, ¿sobrescribirá lo que hayas puesto?
-
Mientras tanto, la única opción real que tienes, supongo, es instalar OpenSSL 1.0.1 o posterior, descargar el código fuente de Apache, y luego construirlo enlazando contra OpenSSL 1.0.1, y luego reemplazar el Apache de OS X con el que acabas de construir. Esto requerirá, casi con toda seguridad, deshabilitar la Protección de Integridad del Sistema porque no puedes modificar los archivos del núcleo del sistema operativo como apache2. Podrías salirte con la tuya simplemente cambiando mod_ssl.so después de hacer la compilación. Pero es ridículo que tengamos que recurrir a esto. ¡Apple tiene que arreglar esto! (ver https://serverfault.com/questions/265556/upgrade-openssl-mod-ssl-on-mac-os-x-server )
-
Descarga VirtualBox, e instalar CentOS u otro sabor de Linux de seguridad mejorada, y acaba de ejecutar su servidor fuera de eso en el Mac. Porque, evidentemente, Apple CBA masticar chicle y caminar al mismo tiempo.
ACTUALIZACIÓN:
Estos son los pasos exactos que he seguido para conseguir que (2.) funcione.
Esto hace que OS X Server 5 funcione con TLS 1.2 y forward secrecy en 10.11.1, haciendo a ATS perfectamente feliz (especialmente si eres un desarrollador esto es realmente genial).
-
Instalar Homebrew y brew install openssl, brew install PCRE
-
Descargue el código fuente más reciente de Apache, apr y apr-util
-
Extraer el código fuente de Apache en /usr/local/src/httpd-2.4.17
-
Extraer los archivos apr y apr-util a /usr/local/src/httpd-2.4.17/srclib/apr y /usr/local/src/httpd-2.4.17/srclib/apr-util
-
Sustituya el carácter "+" por la palabra "apache2" en los ficheros config.layout dentro de los directorios apr y apr-util
-
En Terminal, ejecute 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 en /usr/local/apache-2.4.17/libexec/apache2/
-
Desactivar SIP: Reinicie en modo Recuperar (comando-R), abra Terminal y escriba
csrutil disable
. (Esto te permite ser capaz de hacer cambios dentro de los directorios /usr/sbin y /usr, necesarios para cambiar el inseguro Apache por defecto por el nuevo seguro que estarás construyendo). -
Reinicie de nuevo en modo normal, abra 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
-
Vuelva a habilitar SIP: reinicie en modo Recuperar, abra Terminal y escriba
csrutil enable
. -
Vuelva a arrancar en modo normal y descargue el último código fuente de PHP, luego extráigalo a /usr/local/src/php-5.6.16 (o cualquier versión; 7.0 acaba de salir, woot, pero no sé si rompería los usos de PHP propios de OS X Server)
-
Configure PHP con el siguiente comando (modifíquelo 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 A partir de la línea 65, realice estos cambios (líneas a borrar , nuevas líneas ):
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 On
SSLProtocolo -ALL +TLSv1
Protocolo SSL -SSLv2 -SSLv3
SSLProxyProtocolo -ALL +TLSv1
SSLProxyProtocolo -SSLv2 -SSLv3
-
A continuación, realice un cambio similar en apache_serviceproxy_customsites.conf, comenzando en la línea 13 (líneas a borrar , nuevas líneas ):
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLHonorCipherOrder On
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"
SSLProtocolo -ALL +TLSv1
SSLProtocolo ALL -SSLv2 -SSLv3
SSLProxyProtocolo -ALL +TLSv1
SSLProxyProtocol ALL -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 ha tenido éxito: /usr/bin/nscurl --ats-diagnostics https :// [[url https de su sitio personalizado]] Nota: obviamente, la URL deberá tener el formato adecuado. Puse un espacio extra antes de los dos puntos porque de lo contrario este post es enviado a moderación.
En mi caso, TODAS las pruebas dieron un "APTO".
Puedo proporcionarte un archivo git patch para hacer los cambios en tus archivos .conf asumiendo que todavía tienes una instalación virgen y estás en la misma versión que yo.
0 votos
Mi pregunta es ahora obsoleta, porque el último Server 5.1 (en El Capitan 10.11.4) soporta completamente TLS 1.2, por fin.