Простой вопрос, я просто хотел знать, как установить сертификаты SSL в другие порты веб-сервера. Я пытаюсь заставить веб-приложение иметь действующий сертификат SSL. Использую apache2. Я уже пробовал редактировать файл виртуального хоста. Я даже не знаю, что пытаюсь сделать.
Вы делаете модификации в апаче /etc/apache2/ports.conf
сообщать апачу для слушания на этих различных портах:
Listen 8080
<IfModule ssl_module>
Listen 446
</IfModule>
Шаги были бы:
Создайте свои сертификаты 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
Включите ssl модуль с: sudo a2enmod ssl
Сделайте записи в Вашем 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>
Скажите апачу слушать в новых портах путем добавления портов к /etc/apache2/ports.conf
файл:
Listen 8080
<IfModule ssl_module>
Listen 446
</IfModule>
<IfModule mod_gnutls.c>
Listen 446
</IfModule>
446
по сравнению с 443
Включите файлы конфигурации:
sudo a2ensite example
Апач перезапуска:
sudo systemctl restart apache2
Сначала необходимо прочитать эти ответы:
На основе вышеупомянутых ответов шаги:
Создайте новый конфигурационный файл 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
в брандмауэр:
Создайте DocumentRoot
каталог:
sudo mkdir /var/www/html-99
Вставьте некоторое простое содержание DocumentRoot
каталог:
echo 'Hello!!!' | sudo tee /var/www/html-99/index.html
Перезагрузите конфигурацию Apache:
sudo service apache2 reload
sudo systemctl reload apache2.service
Попытайтесь открыться https://www.example.com:99
через браузер. Результат должен быть: