Fedora 4, Apache 2.2.0, tomcat 5.5.7, openssl 0.9.7f, certificados SSL, nomes de domínio e endereços IP

3

Eu recentemente me tornei o novo administrador de um sistema antigo que todo mundo aborda com a mentalidade "não toque ou pode quebrar". Agora me disseram para "tocá-lo e não quebrá-lo".

Tarefa: O que devo fazer: remover um nome de domínio www.domain1.com do servidor e substituí-lo por www.domain2.com.

Antecedentes: www.domain1.com usa um certificado SSL para hospedar um SOAP e um site de recuperação de dados protegido.
O servidor está desatualizado há muito tempo. É um servidor Fedora 4 com Apache 2.2.0, tomcat 5.5.7 e openssl 0.9.7f.

Estou tentando: Configure o site www.domain2.com no servidor com um certificado SSL para permitir que nossas relações comerciais acessem o SOAP de www.domain2.com/SOAP. Além disso, moveremos nossos outros sites.

Caminho Um: Eu estava olhando para configurar os dois domínios no mesmo endereço IP (1.1.1.1). Para tornar isso mais fácil. No entanto, isso não parece tão fácil ou seguro (consulte as Referências na parte inferior). Descobri que não tenho novas versões suficientes do Apache ou openssl para fazer isso.

Caminho Dois: Eu decidi ver o que eu teria que fazer para atualizá-los, o que levou a descobrir que o yum e o apt-get não têm mais espelhos para o FC4. Eu encontrei versões online que eu poderia instalar manualmente. Não quero seguir esse caminho porque duvido que possa reverter as mudanças. Eu não gosto de colocar minhas esperanças em uma bala de prata que também poderia me matar se eu sentir falta.

Eu tenho:

  • Eu tenho um certificado SSL para www.domain2.com.
  • www.domain2.com é apontado no mesmo IP que www.domain1.com (1.1.1.1).
  • Eu tenho mais três endereços IP atribuídos ao meu servidor que eu posso usar (1.1.1.2, 1.1.1.3 e 1.1.1.4).

Como o caminho que eu estava seguindo não parece viável, eu estava pensando em configurar o www.domain2.com no 1.1.1.2. Com uma nova instalação do Apache, que também poderia vincular ao tomcat para dar acesso ao SOAP.

Perguntas:

  • Posso configurar o domínio2 na versão atual do Apache com o IP 1.1.1.2 com seu certificado ou preciso instalar outra versão do Apache para executar lado a lado?
  • Como eu configuraria o arquivo httpd-ssl.conf se ele estivesse no mesmo Apache?

O atual httpd-ssl.conf (Comentários removidos):

   Listen 443

   AddType application/x-x509-ca-cert .crt
   AddType application/x-pkcs7-crl    .crl

   SSLPassPhraseDialog  builtin


   SSLSessionCache        shmcb:/usr/local/apache-2.2.0/logs/ssl_scache(512000)
   SSLSessionCacheTimeout  300

   SSLMutex  file:/usr/local/apache-2.2.0/logs/ssl_mutex

   ##
   ## SSL Virtual Host Context
   ##

   <VirtualHost *:443>
       ServerName domain1.com
       ServerAdmin [email protected]
       DocumentRoot /www/www.domain.com
       ErrorLog logs/sslerror_log
       CustomLog logs/ssl_request_log \
             "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
       TransferLog logs/ssltransfer_log
       JkMount  /domain1app1/* ajp13
       JkMount /domain1app2/* ajp13
       JkMount /SOAPdomain1app3/* ajp13
       JkMount /InformationRetrevaldoamin1app4/* ajp13

   SSLEngine on

   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

   SSLCertificateFile /usr/local/apache-2.2.0/conf/domain1.crt

   SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain1.key

   SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate.crt

   <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
   </FilesMatch>

   BrowserMatch ".*MSIE.*" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
   </VirtualHost>  

Alguém tem alguma sugestão sobre como proceder? Eu estou procurando a menor mudança que é "desfazer" no caso de eu estragar tudo. Minha caixa de ferramentas é bem pequena quando se trata desses tipos de coisas. Qualquer ajuda seria muito apreciada! Se você tem um jeito de fazer isso que eu não pensei, por favor me avise. :) Ah, e meu chefe gostaria que eu recebesse o certificado SSL no sábado, durante uma janela de manutenção de 4 horas. Se não for possível, posso demorar até o próximo.

Obrigado antecipadamente!

Editado para legibilidade.

Referências:

Vários domínios SSL no mesmo IP endereço e mesma porta?

Site SSL que não está usando o IP correto no Apache e no Ubuntu

não é possível instalar o certificado ssl no apache

    
por jneff 15.02.2012 / 23:12

1 resposta

1

Você não deve instalar um novo Apache. O Apache provavelmente instalou a partir de pacotes RPM, então um segundo Apache só pode ser instalado manualmente. Na minha opinião, é melhor evitar esse tipo de confusão. No entanto, você tem outras opções.

Opção 1 : você pode configurar o seu Apache para lidar com ambos os sites. Para fazer isso, você precisa:

  • Use o endereço IP explícito com a diretiva VirtualHost
  • e fornecer uma diretiva NameVirtualHost para cada um deles

Este é realmente um copiar e colar da configuração atual com algumas alterações. Deve parecer com a configuração aqui embaixo. Desta forma, www.domain1.com e www.domain2.com servem o mesmo conteúdo, uma vez que as diretivas do JkMount permaneceram as mesmas.

Você deve copiar o arquivo atual httpd-ssl.conf antes de editá-lo, então, no caso de eu estragar algo na configuração, você pode copiar de volta o original e reiniciar o servidor.

Opção 2 : se você precisar alterar apenas o nome do domínio, não será necessário tocar em nada. O registro de um novo domínio não tem nada a ver com o Apache. Quando o registro estiver concluído, os servidores DNS resolverão o endereço www.domain2.com para 1.1.1.1 (o que costumava ser www.domain1.com). Feito isso, e domain1.com é excluído, você só precisa substituir a diretiva ServerName e os certificados.

Se você deve ter os dois domínios coexistentes, não importa quanto tempo, então vá para 1.

Opção 3 : se você simplesmente adicionar um

ServerAlias www.domain2.com

linha para sua configuração existente, dentro da definição do VirtualHost, o Apache ainda servirá ambos os domínios (no mesmo endereço IP). Nesse caso, no entanto, você não pode ter certificados diferentes para os dois domínios.

-

Aqui está a configuração modificada da Opção 1:

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin
SSLSessionCache        shmcb:/usr/local/apache-2.2.0/logs/ssl_scache(512000)
SSLSessionCacheTimeout  300

SSLMutex  file:/usr/local/apache-2.2.0/logs/ssl_mutex

NameVirtualHost 1.1.1.1:443
NameVirtualHost 1.1.1.2:443

##
## SSL Virtual Host Context
##

<VirtualHost 1.1.1.1:443>
    ServerName domain1.com
    ServerAdmin [email protected]
    DocumentRoot /www/www.domain.com
    ErrorLog logs/sslerror_domain1_log
    CustomLog logs/ssl_request_domain1_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    TransferLog logs/ssltransfer_domain2_log
    JkMount  /domain1app1/* ajp13
    JkMount /domain1app2/* ajp13
    JkMount /SOAPdomain1app3/* ajp13
    JkMount /InformationRetrevaldoamin1app4/* ajp13

    SSLEngine on

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

    SSLCertificateFile /usr/local/apache-2.2.0/conf/domain1.crt
    SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain1.key
    SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate_for_domain1.crt

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    BrowserMatch ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
</VirtualHost>

<VirtualHost 1.1.1.2:443>
    ServerName domain2.com
    ServerAdmin [email protected]
    DocumentRoot /www/www.domain.com
    ErrorLog logs/sslerror_domain2_log
    CustomLog logs/ssl_request_domain2_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    TransferLog logs/ssltransfer_domain2_log

    JkMount  /domain1app1/* ajp13
    JkMount /domain1app2/* ajp13
    JkMount /SOAPdomain1app3/* ajp13
    JkMount /InformationRetrevaldoamin1app4/* ajp13

    SSLEngine on 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

    SSLCertificateFile /usr/local/apache-2.2.0/conf/domain2.crt
    SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain2.key
    SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate_for_domain2.crt

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>

    BrowserMatch ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
</VirtualHost>
    
por 16.02.2012 / 15:07