Итак, у меня есть приложение на одном сервере, на котором я настроил SSL. Однако он делает кучу вызовов API к другому из моих серверов, но на этом сервере есть более одной службы и нет SSL. Я точно знаю, что если я добавлю SSL ко второму серверу, многие приложения на нем сломаются, и я не хочу, чтобы эти приложения / веб-страницы простои были простоями. Первый сервер еще не запущен, но второй есть и имеет несколько страниц / приложений.
Моя установка в основном такова:
Первый сервер:
superwebpage.coolexample.com
и этот ^ -сервер (с SSL) выполняет вызовы API к api с сервера (без SSL) ниже:
myweb.example.com/api
myweb.example.com/app2
myweb.example.com/anotherimportantwebpage
myweb.example.com/importantwebpage
Однако мое приложение с первого сервера явно ломается, потому что все вызовы API небезопасны, и я просто получаю кучу предупреждений о смешанном содержании.
Причина, по которой на сервере 2 нет SSL, заключается в том, что он мне просто не нужен, потому что до сих пор не передается никакая важная информация.
В общем, мой вопрос: какие у меня варианты? Я хочу избежать отключения второго сервера до тех пор, пока это не займет много времени, чтобы исправить все ошибки, которые будут возникать с каждым приложением / веб-страницей, которые у меня есть на сервере. Я также хочу иметь SSL на первом сервере, потому что пользователи будут входить в систему с паролями.
Более конкретно, могу ли я сделать так, чтобы только одна папка обслуживала https, не затрагивая другие папки? Я думаю, это решит проблему, но не уверен, что это возможно.
Вам не нужно изменять сайт HTTP, чтобы добавить HTTPS. Просто добавьте VirtualHost
для порта 443 укажите DocumentRoot
в тот же каталог, и все готово:
<VirtualHost *:80>
ServerName yourserver.com
DocumentRoot /var/www/yourserver.com
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/yourserver.com
ServerName your-domain.com
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /some/directory/server.crt
SSLCertificateKeyFile /some/directory/server.key
SSLProtocol TLSv1
</VirtualHost>
Перезапустите Apache, и у вас одновременно будут работать HTTPS и HTTP.