Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| nginx:настройка_ssl_https_в_nginx [2018/06/24 15:15] – [Дополнительные опции создания SSL-сертификата] mirocow | nginx:настройка_ssl_https_в_nginx [2024/05/12 19:20] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | {{tag> | + | {{tag> |
| ====== Настройка ssl (https) в nginx ====== | ====== Настройка ssl (https) в nginx ====== | ||
| - | ====== Автоматическая настройка | + | ===== Автоматическая настройка ===== |
| * [[server: | * [[server: | ||
| + | |||
| ===== Ручная настройка ===== | ===== Ручная настройка ===== | ||
| Строка 17: | Строка 18: | ||
| / | / | ||
| + | <code nginx> | ||
| # Подключение самоподписанного сертификата | # Подключение самоподписанного сертификата | ||
| # генерация сертификата: | # генерация сертификата: | ||
| Строка 26: | Строка 27: | ||
| ssl_certificate / | ssl_certificate / | ||
| ssl_certificate_key / | ssl_certificate_key / | ||
| + | </ | ||
| + | |||
| Создадим папку где будем хранить сертификаты: | Создадим папку где будем хранить сертификаты: | ||
| - | | + | <code bash> |
| + | | ||
| Для большей безопасности ограничиваем доступ к сертификатам: | Для большей безопасности ограничиваем доступ к сертификатам: | ||
| chown nginx:nginx / | chown nginx:nginx / | ||
| chmod 700 / | chmod 700 / | ||
| + | | ||
| Перейдем в эту папку и сгенерируем сертификат: | Перейдем в эту папку и сгенерируем сертификат: | ||
| cd / | cd / | ||
| openssl req -new -x509 -days 9999 -nodes -out cert.pem -keyout cert.key | openssl req -new -x509 -days 9999 -nodes -out cert.pem -keyout cert.key | ||
| + | | ||
| При генерации вас попросят указать некоторые данные, | При генерации вас попросят указать некоторые данные, | ||
| Строка 42: | Строка 48: | ||
| в конфигурации сайтов nginx: | в конфигурации сайтов nginx: | ||
| + | <code nginx> | ||
| server { | server { | ||
| listen | listen | ||
| Строка 51: | Строка 57: | ||
| ... | ... | ||
| } | } | ||
| + | </ | ||
| + | |||
| Пример с принудительным перенаправлением с http на https: | Пример с принудительным перенаправлением с http на https: | ||
| в конфигурации сайтов nginx: | в конфигурации сайтов nginx: | ||
| + | <code nginx> | ||
| server { | server { | ||
| listen | listen | ||
| Строка 67: | Строка 76: | ||
| ... | ... | ||
| } | } | ||
| + | </ | ||
| + | |||
| После настройки необходимо перезагрузить nginx: | После настройки необходимо перезагрузить nginx: | ||
| / | / | ||
| + | | ||
| Всё готово, | Всё готово, | ||
| Так как сертификат самоподписанный браузер попросит подтвердить исключение на его использование. | Так как сертификат самоподписанный браузер попросит подтвердить исключение на его использование. | ||
| Строка 77: | Строка 89: | ||
| Создание сертификата командой: | Создание сертификата командой: | ||
| - | openssl req -new -x509 -days 9999 -nodes -out cert.pem -keyout cert.key | + | <code bash> |
| запрашивает некоторую информацию для создания сертификата, | запрашивает некоторую информацию для создания сертификата, | ||
| Но если интересно вот описание параметров: | Но если интересно вот описание параметров: | ||
| - | ^ ^ | + | ^ Значение |
| - | | Значение | + | | С | Двухсимвольный код страны (Country) |
| - | | С | Двухсимвольный код страны (Country) | + | | ST | Название региона/ |
| - | | ST | Название региона/ | + | | L | Название города/ |
| - | | L | Название города/ | + | | O | Название организации (Organization Name) | нет |
| - | | O | Название организации (Organization Name) | нет | + | | OU | Название отдела (Organization Unit) | нет |
| - | | OU | Название отдела (Organization Unit) | нет | + | | CN | Имя сертификата, |
| - | | CN | Имя сертификата, | + | | emailAddress |
| - | | emailAddress | + | |
| Чтобы не вводить эти параметры интерактивное можно использовать опцию -subj: | Чтобы не вводить эти параметры интерактивное можно использовать опцию -subj: | ||
| <code bash>$ openssl req -new -x509 -days 9999 -nodes -subj /C=RU/O=My\ site/ | <code bash>$ openssl req -new -x509 -days 9999 -nodes -subj /C=RU/O=My\ site/ | ||
| + | ====== Перенаправление с http на https ====== | ||
| + | |||
| + | Для принудительного перенаправления с http на https необходимо сзоздать секцию server и добавить в нее **ssi on** и **return 301** | ||
| + | |||
| + | <code nginx> | ||
| + | server { | ||
| + | listen [IP]:80; | ||
| + | server_name site.com; | ||
| + | index index.php; | ||
| + | access_log / | ||
| + | error_log | ||
| + | charset utf-8; | ||
| + | # | ||
| + | |||
| + | ssi on; | ||
| + | return 301 https:// | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Ссылки ===== | ||
| + | {{topic> | ||