Прочитано: 143
Шифрование на сервере можно организовать, подключив два файла, *.crt — это доступный всем сертификат и *.key — секретный ключ.Для установки ssl-сертификуата на сервер Linux необходима программа openssl.
apt-get install openssl
Можно установить самоподписанный годовой сертификат, но браузер пользователя не будет гарантировать, что подключение безопасно, так как сертификат из непроверенного источника.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout domen.ru.key -out domen.ru.crt
Другой способ более эффективен, установить бесплатный, но ограниченного по времени действия (90 дней), сертификат от известного центра сертификации. Например, такой как Comodo.
openssl genrsa -out domen.key 2048 #секретный ключ без пароля
openssl genrsa -des3 -out domen.key 2048 #или секретный ключ с паролем, который нужно вводить при каждом запуске веб-сервера
Далее сформировать файл-запрос на подпись в центр сертификации.
openssl req -new -key domen.key -out domen.csr
# Common Name - доменное имя веб-сервера: domen.ru
# Organization - наименование организации: Org
# Organization Unit - наименование отдела: OrgUnit
# City or Locality - город: City
# State or Province - область: State
# Country - страна: RU
# Оставить пароль пустым
Для проверки содержимого CSR файла-запроса и приватного ключа используйте следующую команду:
openssl req -noout -text -in domen.csropenssl rsa -noout -text -in domen.key
Скопировать содержимое файла-запроса (*.csr) на сайт freessl.su, ввести дополнительные данные, и тем самым сформировать запрос на получение сертификата от центра сертификации.
После получения архива с файлами сертификатов, их необходимо скомбинировать специальной командой в один.
cat domen_ru.crt domen_ru.ca-bundle >> domen.crt
cat domen_ru.crt ComodoHigh-AssuranceSecureServerCA.crt AddTrustExternalCARoot.crt >> domen.crt #или такой командой, если есть соответствующие файлы
Скопировать файлы в каталоги для сертификатов и установить права.
cp domen.crt /etc/ssl/certs/ #копировать
chown www-data:www-data /etc/ssl/certs/domen.crt #установить владельца и группу
chmod 400 /etc/ssl/certs/domen.crt #установить права на чтение
cp domen.key /etc/ssl/private/ #копировать
chown www-data:www-data /etc/ssl/private/domen.key #установить владельца и группу
chmod 400 /etc/ssl/private/domen.key #установить права на чтение
Для надежности, как дополнение, можно сгенерировать ключ Диффи-Хеллмана.
openssl dhparam -out domen.dh.key 4096 #сгенерировать ключ
cp domen.dh.key /etc/ssl/private/ #копировать
chown www-data:www-data /etc/ssl/private/domen.dh.key #установить владельца и группу
chmod 400 /etc/ssl/private/domen.dh.key #установить права на чтение
Пример настроек для nginx.
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/domen.crt;
ssl_certificate_key /etc/ssl/private/domen.key;
ssl_dhparam /etc/ssl/private/domen.dh.key; #если файл есть!
#включить SSLv3/TLSv1, но не SSLv2, который слаб и не должен использоваться.
ssl_protocols SSLv3 TLSv1;
#Отключить все слабые шифры
ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
server_name domen.ru;
}
Проверить сертификат можно на сайте ssllabs.com
Материалы