Рубрики
Linux

SSL-сертификат

Прочитано: 171

Шифрование на сервере можно организовать, подключив два файла, *.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



Материалы

Добавить комментарий

Ваш адрес email не будет опубликован.

пять × 1 =