Как настроить SSL-сертификаты для дополнительные порты в Apache? [закрыто]

Простой вопрос, я просто хотел знать, как установить сертификаты SSL в другие порты веб-сервера. Я пытаюсь заставить веб-приложение иметь действующий сертификат SSL. Использую apache2. Я уже пробовал редактировать файл виртуального хоста. Я даже не знаю, что пытаюсь сделать.

2
задан 29 August 2017 в 21:43

2 ответа

Вы делаете модификации в апаче /etc/apache2/ports.conf сообщать апачу для слушания на этих различных портах:

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

Шаги были бы:

  1. Создайте свои сертификаты SSL:

    • Сделайте каталог для добавления сертификатов:

      mkdir -p /etc/apache2/ssl/example.com
      
    • Создайте сам подписанный сертификат:

      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. Включите ssl модуль с: sudo a2enmod ssl

  3. Сделайте записи в Вашем Virtualhost файлы (названный example.conf), с 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. Скажите апачу слушать в новых портах путем добавления портов к /etc/apache2/ports.conf файл:

    Listen 8080
    <IfModule ssl_module>            
        Listen 446
    </IfModule>
    
    <IfModule mod_gnutls.c>
        Listen 446
    </IfModule>
    
    • Это говорит апачу прислушиваться к трафику SSL в порте 446 по сравнению с 443
  5. Включите файлы конфигурации:

    sudo a2ensite example
    
  6. Апач перезапуска:

    sudo systemctl restart apache2
    
3
ответ дан 2 December 2019 в 01:43

Сначала необходимо прочитать эти ответы:

На основе вышеупомянутых ответов шаги:

  • Создайте новый конфигурационный файл VirtualHost, выделенный Вашему дополнительному порту. Давайте предположим, что это - порт 99, и имя конфигурационного файла https-99.conf:

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

    Содержание https-99.conf должен быть похожим на это:

    <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>
    

    Скопируйте вышеупомянутое содержание и в nano использование: Shift+Insert для вставки; Ctrl+O и Вводят, сохраняют; Ctrl+X для выхода.

  • Включите конфигурационный файл:

    sudo a2ensite https-99.conf
    
  • Генерируйте Давайте Зашифруем файлы сертификата:

    sudo letsencrypt --apache certonly --rsa-key-size 4096 --email email@example.com -d www.example.com
    

    Где email@example.com и www.example.com должно быть реальным.

  • Открытый порт 99 в брандмауэр:

    • При использовании UFW, можно сделать это этой командой: sudo ufw allow 99/tcp

    • Если Вы используете IPTables: sudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPT

  • Создайте DocumentRoot каталог:

    sudo mkdir /var/www/html-99
    
  • Вставьте некоторое простое содержание DocumentRoot каталог:

    echo 'Hello!!!' | sudo tee /var/www/html-99/index.html
    
  • Перезагрузите конфигурацию Apache:

    • Ubuntu 14.04: sudo service apache2 reload
    • Ubuntu 16.04: sudo systemctl reload apache2.service
  • Попытайтесь открыться https://www.example.com:99 через браузер. Результат должен быть:

    enter image description here

3
ответ дан 2 December 2019 в 01:43

Другие вопросы по тегам:

Похожие вопросы: