Como você configura certificados SSL para portas adicionais no Apache? [fechadas]

1

Pergunta simples, eu só queria saber como instalar certificados SSL em outras portas em um servidor web. Eu estou tentando obter um aplicativo da web para poder ter um certificado SSL válido. Eu uso o apache2. Eu já tentei editar o arquivo virtualhost. Eu nem sei o que estou tentando fazer.

    
por Dan Vu 29.08.2017 / 07:23

2 respostas

3

Você faz modificações no /etc/apache2/ports.conf do apache para informar ao apache para ouvir essas portas:

Listen 8080
<IfModule ssl_module>            
        Listen 446
</IfModule>

Os passos seriam:

  1. Crie seus certificados SSL:

    • Crie um diretório para adicionar certificados:

      mkdir -p /etc/apache2/ssl/example.com
      
    • Crie um certificado autoassinado:

      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/example.com/apache.key –out /etc/apache2/ssl/example.com/apache.crt
      
  2. Ative o módulo ssl com: sudo a2enmod ssl

  3. Faça entradas em seus arquivos Virtualhost (chamado example.conf), com sudo nano /etc/apache2/sites-available/example.conf

    <VirtualHost *:8080>
        ServerAdmin webmaster@localhost
        ServerName example.com
        DocumentRoot /var/www/html
    
    </VirtualHost>
    
    
    <IfModule mod_ssl.c>
    <VirtualHost *:446>
    
        ServerAdmin webmaster@localhost
        ServerName example.com
        DocumentRoot /var/www/html
    
        #   SSL Engine Switch:
        #   Enable/Disable SSL for this virtual host.
        SSLEngine on
    
        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile /etc/apache2/ssl/example.com/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/example.com/apache.key
    </VirtualHost>
    
    </IfModule>
    
  4. Diga ao apache para ouvir nas novas portas adicionando as portas ao /etc/apache2/ports.conf file:

    Listen 8080
    <IfModule ssl_module>            
        Listen 446
    </IfModule>
    
    <IfModule mod_gnutls.c>
        Listen 446
    </IfModule>
    
    • Isso diz ao apache para ouvir o tráfego SSL na porta 446 em relação a 443
  5. Ativar os arquivos de configuração:

    sudo a2ensite example
    
  6. Reinicie o apache:

    sudo systemctl restart apache2
    
por George Udosen 29.08.2017 / 08:27
3

Primeiro, você deve ler estas respostas:

Com base nas respostas acima, as etapas são:

  • Crie um novo arquivo de configuração do VirtualHost, dedicado à sua porta adicional. Vamos supor que essa seja a porta 99 e o nome do arquivo de configuração seja https-99.conf :

    sudo nano /etc/apache2/sites-available/https-99.conf
    

    O conteúdo de https-99.conf deve ser assim:

    <IfModule mod_ssl.c>
    
    Listen 99
    
    <VirtualHost *:99>
    
            ServerName www.example.com
    
            DocumentRoot /var/www/html-99
    
            <Directory /var/www/html-99>
                    Options None FollowSymLinks
                    AllowOverride None
                    # To enable .htaccess Overrides: AllowOverride All
                    DirectoryIndex index.html index.php
                    Order allow,deny
                    Allow from all
                    Require all granted
            </Directory>
    
            ErrorLog ${APACHE_LOG_DIR}/https-99.error.log
            CustomLog ${APACHE_LOG_DIR}/https-99.access.log combined
    
            SSLEngine on
            SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem
            SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
            SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem
    
    </VirtualHost>
    
    </IfModule>
    

    Copie o conteúdo acima e em nano use: Deslocar + Inserir para colar; Ctrl + O e Enter para salvar; Ctrl + X para sair.

  • Ativar o arquivo de configuração:

    sudo a2ensite https-99.conf
    
  • Gere arquivos de certificado Vamos criptografar :

    sudo letsencrypt --apache certonly --rsa-key-size 4096 --email [email protected] -d www.example.com
    

    Onde [email protected] e www.example.com devem ser reais.

  • Abra a porta 99 no firewall:

    • Se você usar UFW , poderá fazer isso com este comando: sudo ufw allow 99/tcp

    • Se você usar IPTables : sudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPT

  • Crie o diretório DocumentRoot :

    sudo mkdir /var/www/html-99
    
  • Coloque algum conteúdo simples no diretório DocumentRoot :

    echo 'Hello!!!' | sudo tee /var/www/html-99/index.html
    
  • Recarregue a configuração do Apache:

    • Ubuntu 14.04: sudo service apache2 reload
    • Ubuntu 16.04: sudo systemctl reload apache2.service
  • Tente abrir https://www.example.com:99 pelo navegador. O resultado deve ser:

por pa4080 29.08.2017 / 08:51