Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
nginx:настройка_ssl_https_в_nginx [2018/06/24 15:18] mirocownginx:настройка_ssl_https_в_nginx [2024/05/12 19:20] (текущий) mirocow
Строка 1: Строка 1:
-{{tag>nginx server triks}}+{{tag>nginx server triks ssl certificate}}
  
 ====== Настройка ssl (https) в nginx ====== ====== Настройка ssl (https) в nginx ======
Строка 18: Строка 18:
  
 /etc/nginx/ssl.conf /etc/nginx/ssl.conf
 +<code nginx>
   # Подключение самоподписанного сертификата   # Подключение самоподписанного сертификата
   # генерация сертификата:   # генерация сертификата:
Строка 27: Строка 27:
   ssl_certificate /etc/nginx/ssl/cert.pem;   ssl_certificate /etc/nginx/ssl/cert.pem;
   ssl_certificate_key /etc/nginx/ssl/cert.key;   ssl_certificate_key /etc/nginx/ssl/cert.key;
 +</code>
 +
 Создадим папку где будем хранить сертификаты: Создадим папку где будем хранить сертификаты:
  
-  mkdir /etc/nginx/ssl+<code bash>mkdir /etc/nginx/ssl</code> 
 +  
 Для большей безопасности ограничиваем доступ к сертификатам: Для большей безопасности ограничиваем доступ к сертификатам:
  
   chown nginx:nginx /etc/nginx/ssl   chown nginx:nginx /etc/nginx/ssl
   chmod 700 /etc/nginx/ssl   chmod 700 /etc/nginx/ssl
 +  
 Перейдем в эту папку и сгенерируем сертификат: Перейдем в эту папку и сгенерируем сертификат:
  
   cd /etc/nginx/ssl   cd /etc/nginx/ssl
   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
 +  
 При генерации вас попросят указать некоторые данные, так как мы создаём сертификат для себя то заполнять их не обязательно. При генерации вас попросят указать некоторые данные, так как мы создаём сертификат для себя то заполнять их не обязательно.
  
Строка 43: Строка 48:
  
 в конфигурации сайтов nginx: в конфигурации сайтов nginx:
 +<code nginx>
   server {   server {
           listen          *:443;       # порт https           listen          *:443;       # порт https
Строка 52: Строка 57:
           ...           ...
   }   }
 +</code>
 +
 Пример с принудительным перенаправлением с http на https: Пример с принудительным перенаправлением с http на https:
 в конфигурации сайтов nginx: в конфигурации сайтов nginx:
  
 +<code nginx>
   server {   server {
           listen          *:443;       # порт https           listen          *:443;       # порт https
Строка 68: Строка 76:
           ...           ...
   }   }
 +</code>
 +
 После настройки необходимо перезагрузить nginx: После настройки необходимо перезагрузить nginx:
  
   /etc/init.d/nginx reload   /etc/init.d/nginx reload
 +  
 Всё готово, для доступа к сайту следует использовать https протокол - https://my.site.com Всё готово, для доступа к сайту следует использовать https протокол - https://my.site.com
 Так как сертификат самоподписанный браузер попросит подтвердить исключение на его использование. Так как сертификат самоподписанный браузер попросит подтвердить исключение на его использование.
Строка 95: Строка 106:
 <code bash>$ openssl req -new -x509 -days 9999 -nodes -subj /C=RU/O=My\ site/CN=my.site.com/emailAddress=admin@site.com -out cert.pem -keyout cert.key</code> <code bash>$ openssl req -new -x509 -days 9999 -nodes -subj /C=RU/O=My\ site/CN=my.site.com/emailAddress=admin@site.com -out cert.pem -keyout cert.key</code>
  
 +====== Перенаправление с http на https ======
 +
 +Для принудительного перенаправления с http на https необходимо сзоздать секцию server и добавить в нее **ssi on** и **return 301**
 +
 +<code nginx>
 +server {
 +                                listen [IP]:80;
 +                                server_name site.com;
 +                                index index.php;
 +                                access_log /home/site.com/logs/access.log;
 +                                error_log  /home/site.com/logs/error.log error;
 +                                charset utf-8;
 +                                #charset        windows-1251;
 +
 +                                ssi on;
 +                                return 301 https://$host:443$request_uri;
 +}  
 +</code>
 +
 +===== Ссылки =====
  
 +{{topic>[ssl certificate]}}