Arm1.ru

Заметка про HTTPS и приложения для ВК

Однажды почуяв, что сайт может открываться по https, браузеры (по крайней мере, Firefox и Chrome) уже не хотят открывать его по https. Например, ВКонтакте. А раз сайт открывается через https, то некоторые ресурсы страницы могут всё ещё подгружаться по http, но только не Javascript-скрипты. Они блокируются и должны загружаться только по https.

Сегодня делал простенькое iframe-приложение для ВК. По сути у меня слегка оформленнся php-страница, в которую я просто ставил php-код системы бронирования и покупки билетов. Вставив в приложении в ВК адрес, обнаружил, что ВК у меня работает через HTTPS и страница моя тоже пытается по нему же загрузиться. А т.к. сервер мой https не поддерживает, пришлось настраивать.

Сертификат я получил через StartSSL бесплатно. Настроил всё, всё заработало (теперь мой бложек можно открывать и так: https://arm1.ru отключил, оставил только http пока, т.к. все комменты от Disqus и лайки соцсетей слетели :) да и нет нужды мне в https на этом домене), аллилуйя, скрипт стал грузиться. Только вот PHP-код системы билетов возвращает по сути свой HTML, в котором подгружается по http разный js-код. А так как он блокируется, ничего опять не работает :) Адская, конечно, связка получается. ВК -> iframe -> мой сервер -> сервер билетов. Теперь жду, пока они у себя на сервере https настроят и по нему будут весь js-код отдавать.

Но пара полезных уроков извлечена.

  1. По возможности внешний js-код подгружать не "http://site.com/code.js", а "//site.com/code.js". // - говорит о том, чтобы использовать текущий протокол соединения. Проверка возлагается на плечи браузера и не нужно самому в коде проверять протокол.
  2. Экспириенс по поднятию и настройке https на своём сервере. 2 инструкции, чтобы не потерялись:
    1. Получаем бесплатный SSL сертификат (через StartSSL).
    2. Настраиваем HTTPS-сервер на nginx.

Теперь главное не забыть, что через год SSL сертификат надо будет продлить.

keyboard_return back