• XSS.stack #1 – первый литературный журнал от юзеров форума

ssl php

StandarterSD

floppy-диск
Пользователь
Регистрация
06.02.2019
Сообщения
8
Реакции
0
Написал сайт, но там есть функция, которая работает только по http
Попробовал сделать SSL через Apache, но там проблема с записью в файл.
Ну так вот, как сделать SSL без Apache через php(На нем работает сайт)?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Неясен вопрос. Причем тут РНР ? Работает или нет ссл на сайте, зависит от настроек сервера, конкретно - наличия https сертификата к конкретному домену. В общем, нужно больше инфы.
 
Неясен вопрос. Причем тут РНР ? Работает или нет ссл на сайте, зависит от настроек сервера, конкретно - наличия https сертификата к конкретному домену. В общем, нужно больше инфы.
Сайт запускаю через php, если в apache сказано как настроить SSL, по по PHP информации нет
 
Пожалуйста, обратите внимание, что пользователь заблокирован
зачем тебе настраивать SSL в РНР? Для чего конкретно, какой задачи? Оно должно работать само по себе, если все корректно настроено (за исключением каких-нибудь специфических вещей мб, которые надо отдельно рассматривать).
 
Давайте для начала определимся как работает сайт.
  1. имеется web-сервер. Обычно это apache2 или nginx. Он принимает запросы на порт, читает конфиг и обрабатывает само соединение (именно он упаковывает ответ в SSL).
  2. имеется backend (сам сайт). Он может быть на html/python/cgi/php и многом много другом. Оно не работает с ssl от слова совсем. Сюда прилетают запросы от вэб сервера и установленный интерпретатор выполняет скрипты на сервере. Получает ответ (страницу) и отдает ее web-серверу.
  3. web-сервер получает результат. Упаковывает его в ssl и отправляет пользователю.

ЗНАЧИТ мы приходим к тому, что не важно совсем на каком языке у вас написан сайт. В данной ситуации необходимо настроить сам web-сервер. Подозреваю что в вашем случае это будет апач. А значит необходимо сделать нечто аналогичное моей настройке:

Apache-конфиг:
<VirtualHost *:80>

 ServerName site.im
 ServerAlias www.site.im
 DocumentRoot "/var/www/site.im"

 RewriteEngine on
 ReWriteCond %{SERVER_PORT} !^443$
 RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
 CustomLog /dev/null combined
 ErrorLog /dev/null
</VirtualHost>

# ssl
<VirtualHost *:443>

 ServerName site.im
 ServerAlias www.site.im
 DocumentRoot "/var/www/site.im"

 SSLEngine On
 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
 SSLCipherSuite      ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
 SSLHonorCipherOrder on
 SSLCompression      off
 SSLSessionTickets   off
 SSLHonorCipherOrder on

 SSLCertificateFile /opt/letsencrypt/certs/site.im/fullchain.pem
 SSLCertificateKeyFile /opt/letsencrypt/certs/site.im/privkey.pem

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
 CustomLog /dev/null combined
 ErrorLog /dev/null

 <Directory "/var/www/site.im">
  allow from all
  Options +Indexes
 </Directory>

</VirtualHost>
 
Все настройки нужно проводить в веб-сервере (apache2 или nginx). В php настраивать не нужно ничего, только лишь:

1) все ссылки в твоем сайте должны быть относительными (не <a href="http://site.ru/page.php">раздел page</a>, a <a href="//site.ru/page.php">раздел page</a> или <a href="/page.php">раздел page</a>
так ты избежишь еще одной проблемы reverse_proxy в апаче/нгинксе, не придется заменять линки самим веб-серваком

2) CSS/JS/IMG аналогично, должны быть с относительными ссылками

3) после того, как ты включишь через веб-сервак ssl(https), сайт будет у тебя работать в 2х режимах

4) также можно сделать редирект силами .htaccess с http на https версию
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх