У меня есть два экземпляра AWS EC2, веб-сервер и сервер приложений. Моя домашняя страница находится на моем веб-сервере. До того, как я использовал SSL, я смог получить доступ к странице на своем сервере приложений с моей домашней страницы, используя
http://homePage.com/app1/page.php
Мой proxy-host.conf имеет следующий контент
<virtualhost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
# Servers to proxy the connection, or
# List of application servers Usage
ProxyPass /app1/ http://10.0.1.22:80/
# ProxyPass /app1/ http://10.0.1.22:443/
</virtualhost>
С тех пор я изменил /etc/apache2/ports.conf и /etc/apache2/httpd.conf, поэтому моя домашняя страница всегда использует SSL с портом 443. Я создал файл proxy-ssl-host.conf со следующим содержимым.
<virtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine On
# Set the path to SSL certificate
# Usage: SSLCertificateFile /path/to/cert.pem
SSLCertificateFile /etc/apache2/ssl/homepage.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/homepage.com.key
ProxyPreserveHost On
ProxyPass /app1/ https://10.0.1.22:443/
ProxyPassReverse /app1/ https://10.0.1.22:443/
ServerName localhost
</VirtualHost>
После создания proxy-ssl-host.conf я ввел следующее
sudo a2ensite proxy-ssl-host.conf
sudo service apache2 reload
sudo systemctl restart apache2.service
Теперь, когда я иду в свой браузер и захожу
https://homePage.com/app1/page.php
я получил
The requested URL /app1/page.php was not found on this server.
Apache/2.4.18 (Ubuntu) Server at homePage.com Port 443
РЕДАКТИРОВАТЬ 1:
Я старался
sudo netstat -ntpl | grep :443
на сервере приложений и ничего не получил, так что Apache не прослушивает порт 443 на этом сервере. я добавил
Listen 443
после
Listen 80
в ports.conf и теперь получите
tcp6 0 0 :::443 :::* LISTEN 2205/apache2
после
sudo netstat -ntpl | grep :443
К сожалению, это не решило ни одну из моих проблем в браузере.
РЕДАКТИРОВАТЬ 2:
Когда я зашел на веб-сервер и вошел
wget https://10.0.1.22/page.php
я получил
--2018-02-18 20:58:32-- https://10.0.1.22/page.php
Connecting to 10.0.1.22:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
Когда я вошел
wget https://10.0.1.22/app1/page.php
я получил
--2018-02-18 20:59:37-- https://10.0.1.22/app1/page.php
Connecting to 10.0.1.22:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
Когда я вошел
wget http://10.0.1.22
я получил
--2018-02-18 19:32:45-- http://10.0.1.22/
Connecting to 10.0.1.22:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4198 (4.1K) [text/html]
Saving to: ‘index.html’
index.html 100%[=====================================================================================>] 4.10K --.-KB/s in 0s
2018-02-18 19:32:45 (564 MB/s) - ‘index.html’ saved [4198/4198]
Когда я настраивал SSL на своей DMZ, в моем подвале мне нужно было только установить SSL-сертификаты на моем веб-сервере, и они также вступили в силу на моем сервере приложений. Однако в моем подвале у них был один и тот же публичный IP-адрес. Также на веб-сервере работали CentOS и сервер приложений Debian. В моей облачной DMZ они имеют разные IP-адреса и работают в Ubuntu. Мне было интересно, нужно ли для этого устанавливать сертификаты на моем сервере приложений так же, как я настраивал их на своем веб-сервере.