Сертификатите на Thawte Inc са „приятели“ с nginx apache за правилна работа в уеб приложения под
В тази статия подробностите за настройката на софтуера няма да бъдат обсъждани, защото всичко е стандартно и без никакви затруднения. Ако имате въпроси, ще ви кажа по-подробно.
Същността на проблема.
Има проект, който работи добре, но имаше нужда да се защити този проект чрез SSL. Apache обслужваше всичко това и се справяше с това натоварване, но проектът работеше и имаше все повече потребители. Беше необходимо да преминете към добре познатия пакет nginx + apache. Няма нужда да описвате процеса на настройка на nginx + apache, тази тема вече е „изтрита до дупки“ в Интернет, има много примери за това как всичко работи дори на habrahabr.ru.
Напредък на задачата
Изборът падна на Thawte Inc (thawte.com), процедурата за поръчка на сертификат е стандартна. Събираме пакет документи и им ги изпращаме, те проверяват всичко и след това следват процедурата. В резултат на това Thawte Inc ни издаде сертификати, които трябваше да бъдат свързани с нашия уеб проект. Отидете на уебсайта на Thawte Inc (в личния си акаунт), където ще бъдете подканени да изтеглите сертификатите. Самият сертификат и междинните сертификати. Изтеглете ги и ги качете на уеб сървъра.
Няма нищо сложно, за да свържем нашите сертификати с Apache. В настройките на VirtualHost пишем следните редове, дори самата Thawte Inc дава инструкции.
където:certificate.crtе основният сертификатrsa.keyе ключът за сертификатаcertificate_apache.crtе междинният сертификат Необходими са повече подробности в SSL документацията.
Всичко е наред, всичко работи, всички са доволни, НО! Нашата задача е да направим всичко това на nginx + apache
За целта беше инсталиран nginx
Нека започнем да настройваме VirtualHost на nginx Защото. Целият ни проект трябва да работи на SSL (порт 443, ако е по подразбиране), след което правим съответните настройки
/etc/apache2/ssl.d/- Имам сертификати там, всеки може да има свои собствени настройки и пътеки към файловете. Всички настройки са описани много подробно в документацията на Nginx и не създават особени затруднения. - за проверка на конфигурацията
Деактивираме Apache да слуша на порт 443 и го оставяме да работи само като бекенд. Рестартиране на услуги.
Влизаме в любимия ви браузър (имам firefox) и виждаме, че сайтът ни се е отворил чрез https и работи добре, след което предаваме сайта на тестери за тестване в браузъри, оставяме ги да го направят. След около 30-40 минути получавам отчет, че SSL проверката е неуспешна в мобилни браузъри, защото сертификатът не е надежден и съдържанието няма да бъде заредено. Същото беше и в IE Chrome под работния плот.
Проверяваме всички настройки, всичко изглежда наред, какъв е проблемът, все още не е известно. Сертификатите се качват отново на сървъра, настройките се презаписват и започва „танцът с тамбура“.
Нека започнем подробно проучване на работата на SSL, трейлъра на работата на сертификати и компании, които издават сертификати и т.н. Срещам такова нещо като междинен сертификат. Thawte Inc ни го даде, НО все още не е известно как да го свържем с nginx.
Документацията на nginx е написана много разумно и отнема около 20 минути, за да намерим отговора, от който се нуждаем. Ние изучаваме и виждаме такъв параграф ...
Някои браузъри може да издадат предупреждение за сертификат, подписан от добре познат CA, докато други браузъри ще приемат същия сертификат без проблем. Това се случва, защото органът, издал сертификата, го е подписал с посредниксертификат, който не е в базата данни със сертификати на известни доверени сертифициращи органи, разпространявани с браузъра. В такъв случай CA предоставя "пакет" от сертификати, които трябва да бъдат прикачени към сертификата на сървъра. Сертификатът на сървъра трябва да бъде поставен преди пакета от сертификати в комбинирания файл:и ще бъдем подканени да направим следното:
където:certificate.crtе основният сертификатcertificate_apache.crtе междинният сертификат
на изхода получаваме верига от сертификати с имеchained.crt
Нека започнем да редактираме конфигурацията на nginx, пренесете я в следната форма
- за да проверите конфигурацията, всичко върви добре. Рестартиране на услуги.
След това преминаваме през Chrome в Android и виждаме, че всичко е наред с нас, сайтът се отваря. Даваме го за тест, в отговор идва, че всичко работи както трябва.
Затова постигнахме това, което се искаше от нас.