Como instalar o SSL no Apache2 / Ubuntu 14.04

1

Lamento se o título da minha pergunta parecer com outros / repostar, mas já encontrei a mesma pergunta e não encontrei soluções.

Acabei de comprar o GeoTrust QuickSSL e quero configurar o SSL no meu Amazon EC2 Instance .

Aqui está minha configuração 001-mysite-ssl.conf que eu salvo em /etc/apache2/sites-available e, em seguida, faço o symlink em /etc/apache2/sites-enabled/ :

<IfModule mod_ssl.c>
    <VirtualHost mysite.com:443>
            ServerAdmin [email protected]

            DocumentRoot /var/www/html

            #LogLevel info ssl:warn

            ErrorLog ${APACHE_LOG_DIR}/error-mysite-ssl.log
            CustomLog ${APACHE_LOG_DIR}/access-mysite-ssl.log combined

            SSLEngine on

            #   MySite SSL & Key File
            SSLCertificateFile      "/usr/local/ssl/certs/mysite_com.crt"
            SSLCertificateKeyFile   "/usr/local/private/mysite.com.key"

            #   Certificate Authority (CA):
            SSLCACertificateFile "/usr/local/certs/mysite_com.ca-bundle"

            SSLProtocol     TLSv1 TLSv1.1 TLSv1.2
            SSLCipherSuite  "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"

            <Directory "/var/www/html">
                    Options Indexes FollowSymlinks MultiViews
                    AllowOverride All
                    Require all granted

                    <FilesMatch "\.php$">
                            Require all granted
                            SetHandler proxy:fcgi://127.0.0.1:9000
                    </FilesMatch>
            </Directory>

            ServerSignature Off
            ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                    SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                    SSLOptions +StdEnvVars
            </Directory>

            #   SSL Protocol Adjustments:
            BrowserMatch "MSIE [2-6]" \
                            nokeepalive ssl-unclean-shutdown \
                            downgrade-1.0 force-response-1.0
            # MSIE 7 and newer should be able to use keepalive
            BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    </VirtualHost>

e eu tenho isso no meu log de erro error-mysite-ssl.log :

 [Tue Aug 11 08:04:34.450708 2015] [ssl:warn] [pid 25086:tid 139975196800896] AH01909: ec2-57-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com:443:0 server certificate does NOT include an ID which matches the server name

Tenho certeza de que coloco meu certificado SSL, SSL Key & CA Bundle no caminho conforme configurado acima e permissão para SSL Certificate & CA Bundle to 640 e SSL Key apenas para 400. Mesmo eu tentei mudar a permissão para 766, também não funciona. E tenho certeza de que registrei o Common Name (CN) exatamente como mysite.com (sem www, apenas domain.TLD).

Quando tentei acessar, ele me deu o resultado: ERR_SSL_PROTOCOL_ERROR no Google Chrome. Quando eu uso o Firefox, isso me dá um erro como este Error code: ssl_error_rx_record_too_long .

Ah, eu rodando o Ubuntu 14.04 x64 e o Apache como meu servidor web.

Por favor, dê-me algumas ideias / conselhos para o meu problema.

    
por agungandika 11.08.2015 / 11:16

1 resposta

0

O Amazon EC2 não tem nada a ver com o meu problema, porque eu já permito a porta 443 via console de gerenciamento, para que a porta 443 possa ser acessada de fora.

A solução para esse problema é que esqueci que minha instância foi configurada como IP dedicado e sim apenas um IP público único atribuído a essa instância para um único domínio. Então, a configuração correta é:

<IfModule mod_ssl.c>
    # I change mysite.com to *:443
    <VirtualHost *:443>
    ....
    </VirtualHost>
</IfModule>

Isso resolve o problema, no momento. Se você ou outra pessoa com o mesmo problema comigo, verifique VirtualHost com seu domínio e a porta 443 está aberta.

Se a configuração da sua instância permitir um único IP para vários domínios, você deve manter a configuração como esta

<IfModule mod_ssl.c>
    <VirtualHost domainA.com:443>
    ....
    </VirtualHost>
</IfModule>

E não se esqueça de configurar / configurar o DNS na instância local para suportar este domínio para que o SSL seja executado corretamente.

    
por 11.08.2015 / 14:55