Como atualizar o servidor 5 para o TLS 1.2?


7

Na versão mais recente do aplicativo de servidor da Apple versão 5.0.4 em execução no El Capitan (10.11.2), os sites SSL usam o TLS versão 1.0. Mas, como diz um certo Ivan Ristic , "o importante é que o TLS 1.0 é inseguro e precisamos migrar dele". Como conseguir isso com o Servidor 5?


Minha pergunta agora está obsoleta, porque o último Servidor 5.1 (no El Capitan 10.11.4) suporta completamente o TLS 1.2, finalmente.
JYF

Respostas:


3
  1. Acesse http://www.apple.com/feedback e envie comentários exigindo que eles atualizem o Server e o OS X para oferecer suporte ao TLS 1.2. É ridículo que eles não o façam, especialmente considerando que no iOS 9 e no El Capitan eles exigem que os desenvolvedores da Apple lançem software que só converse com os servidores TLS 1.2. Mesmo se você pudesse corrigir o servidor para funcionar com o TLS 1.2, o que acontece quando a Apple atualiza o servidor novamente e ainda não suporta o TLS 1.2? Quando você instala essa atualização, ela sobrescreve o que você colocou no lugar?

  2. Nesse meio tempo, a única opção real que você tem, eu acho, é instalar o OpenSSL 1.0.1 ou posterior, fazer o download do código-fonte do Apache e então construí-lo ligando com o OpenSSL 1.0.1, e então substituir o Apache do OS X pelo um que você acabou de construir. Isso quase certamente exigirá a desativação do System Integrity Protection porque você não pode modificar os arquivos principais do sistema operacional como o apache2. Você pode ser capaz de sair apenas trocando o mod_ssl.so depois de fazer sua compilação. Mas é ridículo que tenhamos mesmo que recorrer a isso! A Apple precisa consertar isso !!! (consulte https://serverfault.com/questions/265556/upgrade-openssl-mod-ssl-on-mac-os-x-server )

  3. Faça o download do VirtualBox e instale o CentOS ou outro sabor Linux com segurança aprimorada, e apenas execute seu servidor com isso no Mac. Porque, evidentemente, a Apple CBA para mascar chiclete e andar ao mesmo tempo.

ATUALIZAR:

Aqui estão os passos exatos que eu fiz para obter (2) acima para trabalhar.

Isso faz com que o OS X Server 5 trabalhe com o TLS 1.2 e envie o sigilo no 10.11.1, tornando o ATS perfeitamente feliz (especialmente se você for um desenvolvedor, isso é muito legal).

  1. Instale Homebrew e prepare a instalação openssl, brew install PCRE
  2. Faça o download da fonte mais recente para Apache, apr e apr-util
  3. Extraia a fonte do Apache em /usr/local/src/httpd-2.4.17
  4. Extraia os arquivos apr e apr-util para /usr/local/src/httpd-2.4.17/srclib/apr e /usr/local/src/httpd-2.4.17/srclib/apr-util
  5. Substitua o caractere "+" pela palavra "apache2" nos arquivos config.layout dentro dos diretórios aprs e apr-util
  6. No Terminal, execute os seguintes 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
    
  7. Copie mod_hfs_apple.so, mod_authnz_ldap.so e mod_ldap.so de / usr / libexec para /usr/local/apache-2.4.17/libexec/apache2/

  8. Desativar SIP: Reinicie no modo Recuperar (comando-R), abra Terminal e digite csrutil disable. (Isso permite que você possa fazer alterações dentro dos diretórios / usr / sbin e / usr, necessários para trocar o Apache padrão inseguro pelo novo seguro que você estará construindo.)
  9. Reinicie novamente no modo normal, abra o Terminal e digite os seguintes 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
    
  10. Reative o SIP: reinicie no modo Recuperar, abra o Terminal e digite csrutil enable.
  11. Reinicie de volta no modo normal e baixe a última fonte para o PHP, então extraia para /usr/local/src/php-5.6.16 (ou qualquer versão; 7.0 acabou de sair, woot, mas eu não sei se seria quebrar os próprios usos do PHP do OS X Server)
  12. Configure o PHP com o seguinte comando (modifique conforme necessário, mas isso funcionou para minha pilha LAMP com o 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. Em um editor de texto, edite o arquivo: /Library/Server/Web/Config/Proxy/servermgr_serviceproxy_customsites.plist A partir da linha 65, execute estas alterações (linhas a serem excluídas , novas linhas ):

    SSLCipherSuite "TODOS:! ANULL:! ADH:! ENULL:! BAIXO:! EXP: RC4 + RSA: + ALTO: + MÉDIO"

    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

    SSLProtocol -ALL + TLSv1

    SSLProtocol -SSLv2 -SSLv3

    SSLProxyProtocol -ALL + TLSv1

    SSLProxyProtocol -SSLv2 -SSLv3

  14. Em seguida, faça uma alteração semelhante em apache_serviceproxy_customsites.conf, começando na linha 13 (linhas a serem excluídas , novas linhas ):

    SSLCipherSuite "TODOS:! ANULL:! ADH:! ENULL:! BAIXO:! EXP: RC4 + RSA: + ALTO: + MÉDIO"

    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 "

    SSLProtocol -ALL + TLSv1

    SSLProtocol ALL -SSLv2 -SSLv3

    SSLProxyProtocol -ALL + TLSv1

    SSLProxyProtocol ALL -SSLv2 -SSLv3

  15. Em seguida, faça exatamente as mesmas alterações da etapa 14., em apache_serviceproxy.conf, iniciando na linha 198.

  16. Inicie o servidor do OS X e execute o seguinte comando para verificar se obteve êxito: / usr / bin / nscurl --ats-diagnosticshttps: // [[URL do https do seu site personalizado]] Observação: o URL obviamente precisará ser formatado devidamente. Eu coloquei um espaço extra lá antes do cólon, porque senão esse post é enviado para moderação.

No meu caso, todos os testes voltaram com um "PASS".

Eu posso fornecer-lhe um arquivo de patch git para fazer as alterações em seus arquivos .conf assumindo que você ainda tem uma instalação virgem e você está na mesma versão que eu.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.