Ответить в теме

[QUOTE="moder, post: 535, member: 1"]

Чтобы подготовить сервер для работы с https, необходимо установить в систему SSL-сертификат. За сертификаты нужно платить, но можно установить бесплатный или самоподписной сертификат. Правда, при самоподписном сертификате, браузер будет ругаться, что сертификат не проверен, а это может отпугнуть часть пользователей.


Для работы с SSL нам потребуется установить  OpenSSL на сервер (возможно он уже установлен, проверить можно командой openssl version). Качаем и устанавливаем:

[CODE]

wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz

tar -xvzf openssl-1.0.0d.tar.gz

cd openssl-1.0.0d

./config --prefix=/usr --openssldir=/usr/ssl

make

make test

make install

./config shared --prefix=/usr --openssldir=/usr/ssl

make clean

make

make install

[/CODE]


Получаем сертификат.


Стоимость сертификата зависит от его типа. Поскольку нам сертификат нужен прежде всего для защиты от цензуры и слежки, то мы можем использовать недорогой сертификат. Я беру сертификаты здесь.


Для генерации нового сертификата центр сертификации попросит вас файл CSR. Это ваш открытый ключ, который можно сгенерировать в командной строке

[CODE]

mkdir -p ~/etc/nginx/ssl && cd ~/etc/nginx/ssl


openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr[/CODE]

либо через isp manager, во вкладке SSL сертификаты > создать.

[ATTACH=full]154[/ATTACH]



Копируем содержимое файла yourdomain.csr в центр сертификации (если сертификат создали из isp manager, то кликаем на него и нажимаем скачать) и создаем набор ключей для вашего домена (придут на Email).  Файл yourdomain.csr удаляем с сервера.


У разных сертификатов может быть разный набор ключей. Например, для сертификата  Comodo Essential SSL вы должны получить такой набор ключей:

  • AddTrustExternalCARoot.crt
  • ComodoUTNSGCCA.crt
  • EssentialSSLCA_2.crt
  • youdomain.crt
  • UTNAddTrustSGCCA.crt

youdomain.crt - это непосредственно сам сертификат. Остальные файлы нам нужны для того, чтобы получить цепочку, для этого набираем в командной строке:

[CODE]

# cd /etc/nginx/ssl

# cat youdomain.crt EssentialSSLCA_2.crt ComodoUTNSGCCA.crt UTNAddTrustSGCCA.crt AddTrustExternalCARoot.crt > yourdomain.bundle.crt[/CODE]


Иногда файл yourdomain.bundle.crt уже идет в комплекте с ключами.



Установка SSL сертификата на  Nginx.


1. Сохраняем файлы сертификата в папке /etc/nginx/ssl на вашем сервере. В этой же директории должен находиться файл ключа (yourdomain.key), который мы сгенерировали ранее.


2. Для включения SSL в Nginx нужно добавить конфигурацию сервера следующие настройки:


[CODE]server {

...

server_name youdomain.com www.youdomain.com;

listen 443;

#ssl on;

ssl_certificate /etc/nginx/ssl/yourdomain.bundle.crt; # цепочка сертификатов

ssl_certificate_key /etc/nginx/ssl/yourdomain.key; # файл ключа

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";

add_header Strict-Transport-Security 'max-age=604800'; # браузер будет автоматически перенаправлять на https, если пользователь зашел на сайт через http

...

}[/CODE]




Ссылки:

http://nginx.org/ru/docs/http/configuring_https_servers.html - мануал для Nginx

klen.github.io/https-setup-ru.html - настройка https для "чайников", с картинками.

http://ru.ispdoc.com/index.php/Ручная_установка_SSL_сертификата

http://linuxguru.ru/panel/ispmanager/nastrojka-ssl-v-ispmanager-cherez-nginx/


Любые вопросы, а также отзывы о работе сертификатов пишите в теме.

[/QUOTE]

Сверху